繁体   English   中英

检查列表是否包含特定的数字序列

[英]Checking if a list contains a certain sequence of numbers

我有一个从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。 我觉得这只是一个简单的问题,询问列表是否包含其他列表或其他内容。 我只是无法连接点而不是点击我。 任何帮助,将不胜感激。

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')):

你需要比较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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM