Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列表理解不适用于所有元素_Python_List_List Comprehension - Fatal编程技术网

Python 列表理解不适用于所有元素

Python 列表理解不适用于所有元素,python,list,list-comprehension,Python,List,List Comprehension,我在做拼字游戏。我有81个正方形,A1(左上角)到I9(左下角) 和3个长度为9的列表列表,行、列和子网格各有9个元素 我还有一个主列表=子+列+行 例如: row[0] = [['1A', '2A', '3A', '4A', '5A','6A','7A','8A','9A']] 当我这样做时: test = [i for i in masterList if 'A1' in i] print test print len(test) 长度只有2(应该是3),并且只从组成主列表的前2个列表打

我在做拼字游戏。我有81个正方形,A1(左上角)到I9(左下角) 和3个长度为9的列表列表,行、列和子网格各有9个元素

我还有一个主列表=子+列+行

例如:

row[0] = [['1A', '2A', '3A', '4A', '5A','6A','7A','8A','9A']]
当我这样做时:

test = [i for i in masterList if 'A1' in i]
print test
print len(test)
长度只有2(应该是3),并且只从组成主列表的前2个列表打印(因此在本例中,它找不到行[0]

 test2 = [i for i in row if 'A1' in i]
 print test2

工作正常。我不确定它为什么这样做。

您不能将assignment语句与
打印一起放置。请按如下方式将它们分开:

test = [i for i in test if 'A1' in masterList]
print test
print len(test)

如您所见:
print a=…
语法无效

您的第一个和第二个列表理解不一致:

test = [i for i in test if 'A1' in masterList]
不一样

 test2 = [i for i in row if 'A1' in i]
首先,第一个测试检查的唯一一件事是查看“A1”是否在主列表中,实际上您并没有迭代检查任何内容


我无法解释为什么/你应该得到什么,因为你的问题一开始不清楚
测试
中包含了什么,但是你正在检查
一个列表comp中的I
中的'A1'是否为'A1',另一个列表comp中的
如果'A1'为'A1',可能是差异的根源。

不可能。作业在
print
语句中,将产生语法错误。我的错误,意外地失败了复制粘贴。我不知怎么搞砸了复制粘贴,可能是在发送u和Ctrl R的过程中,试图找出为什么这不能按预期工作。你现在能帮我吗?