我有一个从1到6的5个整数的列表(模拟5个骰子滚动),例如随机生成:
L = [1,2,3,4,5]
我想检查一下排序后的这个列表是否包含
[1,2,3,4] or [2,3,4,5] or [3,4,5,6].
我如何检查列表L是否包含3种组合中的任何一种? 我不想要检查是否
L[i] == l1 [i], L[i]== l2 [i], L[i]== l3 [i]
表示列表中的int。我觉得这只是一个简单的问题,询问列表是否包含其他列表或其他内容。我只是无法连接点而不是点击我。任何帮助将不胜感激。
答案 0 :(得分:6)
in
运算符可以方便地查看序列是否包含单个项目,但它无法检查项目列表。但是,它确实对字符串有效,所以只需将所有内容转换为字符串。
s = ''.join(str(i) for i in sorted(L))
if '1234' in s or '2345' in s or '3456' in s:
# ...
如果您还有更多条件需要检查,可以简化一下:
if any(sublist in s for sublist in ('1234', '2345', '3456')):
答案 1 :(得分:3)
您需要与L的第一个和最后四个元素进行比较:
L = [1,2,3,4,5]
lst = [2,3,4,5]
print(sorted(lst) in (L[1:], L[:4]) )
类似于:
any(sorted(lst) in (L[1:],L[:4]) for lst in rolls)