鱼C论坛

 找回密码
 立即注册
查看: 671|回复: 5

新手问题跪求大佬们解释

[复制链接]
发表于 2019-4-22 09:46:04 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
list_2d[ [i+j  for i in range(5) ] for j in range(5)]
这里面的i+j 和 [ i+j for in range(5)]这个整体 在 for in循环中是什么情况,菜鸡求助(╥╯﹏╰╥)
来自: 微社区
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-22 10:02:13 | 显示全部楼层
本帖最后由 jackz007 于 2019-4-22 10:05 编辑

      应该是:list2d = [[i + j  for i in range(5)] for j in range(5)] 吧。
      这条语句可以产生出一个二维列表,其过程可以用下面的代码来描述:
  1. list2d = []
  2. for i in range(5):
  3.     list1d = []
  4.     for j in range(5):
  5.         list1d . append(i + j)
  6.     list2d . append(list1d)
复制代码

  1. print list2d
  2. [[0, 1, 2, 3, 4], [1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8]]
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-22 10:03:09 | 显示全部楼层
i+j  for i in range(5)  为列表推导式  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-22 10:05:03 | 显示全部楼层
相当于
>>> ls=[]
>>> for i in range(5):
...   for j in range(5):
...    ls.append(i+j)
...
>>> print(ls)
[0, 1, 2, 3, 4, 1, 2, 3, 4, 5, 2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8]
>>>

不过你的表达式是错误的  应该是
>>> ls=[ i+j  for i in range(5)  for j in range(5)]
>>> print(ls)
[0, 1, 2, 3, 4, 1, 2, 3, 4, 5, 2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-22 10:07:39 | 显示全部楼层
嗯,2楼是对的

>>> ls=[ [i+j  for i in range(5)]  for j in range(5)]
>>> print(ls)
[[0, 1, 2, 3, 4], [1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8]]
>>>
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-22 10:14:17 From FishC Mobile | 显示全部楼层
了解了,谢谢大佬们
来自: 微社区
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-15 09:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表