Python for 赋值的问题请教一下?

2018-05-16 23:26:47 +08:00
 woshichuanqilz

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

4150 次点击
所在节点    Python
16 条回复
264768502
2018-05-16 23:34:36 +08:00
list 传的是指针
Northxw
2018-05-16 23:37:21 +08:00
才学疏浅,没看懂
kindjeff
2018-05-16 23:43:09 +08:00
前一个 y 和后一个 y 不是一个东西,写这个代码的建议拖出去打死
Joshua999
2018-05-16 23:50:27 +08:00
展开
for x in y:
for y in a:
c.append(x)
enenaaa
2018-05-16 23:51:29 +08:00
因为还有段代码没贴出来啊
liyiecho
2018-05-17 00:06:29 +08:00

c = [x for x in y for y in a] 好奇是如何做到不报错的?
lonccc
2018-05-17 00:59:55 +08:00
写反了
xzpjerry731
2018-05-17 01:05:10 +08:00
@liyiecho #6 估计楼主定义了一个 y 全局变量
xiaol825
2018-05-17 01:27:38 +08:00
如果完全第一次运行的话,第一个 y 那里是要出错的(未定义),你可以运行出来是因为 y 是本来已经有值了。你可以 print ( y )看一下
MrGba2z
2018-05-17 04:17:30 +08:00
你要的是:
c = [ y for x in a for y in x]
xiaket
2018-05-17 06:53:30 +08:00
先把单展开的列表解析弄清楚再尝试多展开吧...
zhusimaji
2018-05-17 07:47:12 +08:00
列表生成式写错了啦
aaronzjw
2018-05-17 08:06:40 +08:00
会报错吧
catsoul
2018-05-17 09:11:29 +08:00
你前面用过 y 这个变量,这里的后面一个 y in a 是没卵用的
SayHeya
2018-05-17 12:26:03 +08:00
执行顺序的问题
xpresslink
2018-05-17 15:39:44 +08:00
楼主注意一下,在列表解析(推导)式中的双层 for 循环和直接用循环语句的层次是一样的。
c = []
for y in a:
□□□□for x in y:
□□□□□□□□c.append(x)


c = [ x for y in a for x in y]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/455440

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX