【发布时间】:2020-01-22 07:10:04
【问题描述】:
我正在尝试检查每个子列表中位置 X 的元素是否相同。喜欢:
我们有列表列表:
s= [[0,0,0],[0,0,1],[0,0,1]]
我想检查所有子列表中的第三个元素是否相同。就像在这个例子中应该只适用于第二个和第三个子列表
for x in s:
if x[2] == 1:
print "T"
尝试打印它们,但这只是每次进入时都会打印它们。我只想检查列表中的第三个元素在 subslist 中是否相同
谢谢!
【问题讨论】:
-
不清楚您所说的“子字符串”是什么意思。你是说子列表吗?
-
您可以使用zip 收集某个位置的所有元素,例如
list(zip(*s))[2] -
是的,我的意思是子列表,我的错...
-
不是硬编码您要检查的值,而是从第一个条目中获取相应的值。或者,从所有条目中获取第三个值(使用映射或列表理解),然后使用
reduce之类的东西来检查它们是否都相等。或者一个集合:如果你将一个序列提供给一个集合并最终得到一个元素,那么所有项目都是平等的,所以len({entry[2] for entry in s}) == 1。 -
您使用的是 Python 2 吗?如果有,为什么?