This topic created in 1293 days ago, the information mentioned may be changed or developed.
最近在学习 Python ,有个基础语法表达不是很明白。
比如我们要创建一个嵌套表格
看到教程里有一种写法使用了列表表达式,如下
>>>s=[[0]* 3 for i in range(3)]
>>>s
[[0,0,0],[0,0,0],[0,0,0]]
这里有点不懂的是,这个 i 对象没有被左侧的表达所引用,为什么结果会出来呢?
9 replies • 2022-11-29 14:11:57 +08:00
 |
|
1
RRRoger Nov 22, 2022
java js 都是这样的啊 这是 feature 并不是用到才会去迭代
|
 |
|
3
foufoufm Nov 22, 2022
因为这个问题跟列表推导式的结构有关系
如果代码如下, s=[[0]*3 for i in range(3) for d in range(4) for e in range(5) ]
会怎么样呢?
|
 |
|
4
Alias4ck Nov 22, 2022 1
你如果不想使用迭代对象得 话可以写成 [[0]* 3 for _ in range(3)]
|
 |
|
5
shyrock Nov 22, 2022 1
xxx for i in range(n)这条语句首先是重复 xxx n 次,其次提供了 i 作为序号,如果你在 xxx 中需要的话可以引用这个序号 i ,如果不需要,可以写成 xxx for _ in range(n)。
|
 |
|
8
luckyc Nov 29, 2022
既然是新手就先用正常写法写, 再转换成列表推导式 s = [] for i in range(3): s.append([0]*3) print(s)
|