像这个表达式 为什么 c = [2,2] 而不是 [1,2]
1 264768502 2018-05-16 23:34:36 +08:00 via Android list 传的是指针 |
2 Northxw 2018-05-16 23:37:21 +08:00 才学疏浅,没看懂 |
![]() | 3 kindjeff 2018-05-16 23:43:09 +08:00 ![]() 前一个 y 和后一个 y 不是一个东西,写这个代码的建议拖出去打死 |
![]() | 4 Joshua999 2018-05-16 23:50:27 +08:00 via Android ![]() 展开 for x in y: for y in a: c.append(x) |
![]() | 5 enenaaa 2018-05-16 23:51:29 +08:00 ![]() 因为还有段代码没贴出来啊 |
![]() | 6 liyiecho 2018-05-17 00:06:29 +08:00 |
![]() | 7 lonccc 2018-05-17 00:59:55 +08:00 via Android 写反了 |
![]() | 8 xzpjerry731 2018-05-17 01:05:10 +08:00 @liyiecho #6 估计楼主定义了一个 y 全局变量 |
![]() | 9 xiaol825 2018-05-17 01:27:38 +08:00 如果完全第一次运行的话,第一个 y 那里是要出错的(未定义),你可以运行出来是因为 y 是本来已经有值了。你可以 print ( y )看一下 |
![]() | 10 MrGba2z 2018-05-17 04:17:30 +08:00 ![]() 你要的是: c = [ y for x in a for y in x] |
![]() | 11 xiaket &nbp; 2018-05-17 06:53:30 +08:00 先把单展开的列表解析弄清楚再尝试多展开吧... |
![]() | 12 zhusimaji 2018-05-17 07:47:12 +08:00 via iPhone 列表生成式写错了啦 |
![]() | 13 aaronzjw 2018-05-17 08:06:40 +08:00 via iPhone 会报错吧 |
![]() | 14 catsoul 2018-05-17 09:11:29 +08:00 你前面用过 y 这个变量,这里的后面一个 y in a 是没卵用的 |
![]() | 15 SayHeya 2018-05-17 12:26:03 +08:00 via Android 执行顺序的问题 |
16 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] |