像这个表达式 为什么 c = [2,2] 而不是 [1,2]

1
264768502 2018 年 5 月 16 日 via Android
list 传的是指针
|
2
Northxw 2018 年 5 月 16 日
才学疏浅,没看懂
|
3
kindjeff 2018 年 5 月 16 日 前一个 y 和后一个 y 不是一个东西,写这个代码的建议拖出去打死
|
4
Joshua999 2018 年 5 月 16 日 via Android 展开
for x in y: for y in a: c.append(x) |
5
enenaaa 2018 年 5 月 16 日 因为还有段代码没贴出来啊
|
6
liyiecho 2018 年 5 月 17 日
|
7
lonccc 2018 年 5 月 17 日 via Android
写反了
|
8
xzpjerry731 2018 年 5 月 17 日
@liyiecho #6 估计楼主定义了一个 y 全局变量
|
9
xiaol825 2018 年 5 月 17 日
如果完全第一次运行的话,第一个 y 那里是要出错的(未定义),你可以运行出来是因为 y 是本来已经有值了。你可以 print ( y )看一下
|
10
v2gba 2018 年 5 月 17 日 你要的是:
c = [ y for x in a for y in x] |
11
xiaket 2018 年 5 月 17 日
先把单展开的列表解析弄清楚再尝试多展开吧...
|
12
zhusimaji 2018 年 5 月 17 日 via iPhone
列表生成式写错了啦
|
13
aaronzjw 2018 年 5 月 17 日 via iPhone
会报错吧
|
14
catsoul 2018 年 5 月 17 日
你前面用过 y 这个变量,这里的后面一个 y in a 是没卵用的
|
15
SayHeya 2018 年 5 月 17 日 via Android
执行顺序的问题
|
16
xpresslink 2018 年 5 月 17 日
楼主注意一下,在列表解析(推导)式中的双层 for 循环和直接用循环语句的层次是一样的。
c = [] for y in a: □□□□for x in y: □□□□□□□□c.append(x) c = [ x for y in a for x in y] |