Python 列表理解不适用于所有元素
我在做拼字游戏。我有81个正方形,A1(左上角)到I9(左下角) 和3个长度为9的列表列表,行、列和子网格各有9个元素 我还有一个主列表=子+列+行 例如: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个列表打
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的过程中,试图找出为什么这不能按预期工作。你现在能帮我吗?