Python检查数组中的下一个是否相同
我正在制作一个python脚本来掷骰子。除了一点以外,我什么都做得很好。当某人连续掷4、4次骰子时,它应该再掷4个骰子。Python检查数组中的下一个是否相同,python,Python,我正在制作一个python脚本来掷骰子。除了一点以外,我什么都做得很好。当某人连续掷4、4次骰子时,它应该再掷4个骰子。 我主要想检查数组中的下四个数字是否与前四个相同,以检查是否有“组合” 例如: [4,4,4,4]等于真,数组中再添加4个随机整数 [4,3,1,4]等于假 有人知道我这样做吗 提前谢谢 我怀疑您缺少的部分是应用于理解的all函数。差不多 if all([rolls[i+n] == rolls[i] for n in range(4)]): # Perform 4 mo
我主要想检查数组中的下四个数字是否与前四个相同,以检查是否有“组合” 例如: [4,4,4,4]等于真,数组中再添加4个随机整数 [4,3,1,4]等于假 有人知道我这样做吗
提前谢谢 我怀疑您缺少的部分是应用于理解的all函数。差不多
if all([rolls[i+n] == rolls[i] for n in range(4)]):
# Perform 4 more rolls
理解(对于列表表达式中的循环)生成四个布尔结果all决定是否所有元素都为真。仅供参考,all的“或”版本是any功能。您可以提取最后4卷,将其转换为一组,然后查看其中是否只有一个元素 您还需要确保至少有4个转鼓,以不对
[4,4]
返回True
,例如:
def test_last_four(rolls):
if len(rolls) >= 4 and len(set(rolls[-4:])) == 1:
return rolls[-1]
print(test_last_four([1, 4, 4, 4, 4]))
#=> 4
print(test_last_four([1, 4, 3, 1, 4]))
#=> None
print(test_last_four([4, 4]))
#=> None
你看起来像这样吗?(上图)
您还可以再添加4个这样的随机数字。(bottem)
返回
False
True
使用
set
应该可以:
list1=[4,4,4,4]
list2=[4,4,3,4]
comparison= set(list1).intersection(list2)
if len(comparison) > 1:
print("No Combo found")
#or a whatever you require to be done here to show no combo
我从你的问题中得出的结论是,你想核实一下
- 我的列表中的所有元素都相同吗
- 如果是,列表中有哪个值
if set(dice_rolls) == {4}:
# roll logic
请显示您遇到困难的代码部分。提供一个示例输入和明确的精确输出,并解释您在当前代码中面临的困难。为什么不只存储最后4卷?是的,对不起,我对在这里提问非常陌生,将来也可以。
False
True
list1=[4,4,4,4]
list2=[4,4,3,4]
comparison= set(list1).intersection(list2)
if len(comparison) > 1:
print("No Combo found")
#or a whatever you require to be done here to show no combo
if set(dice_rolls) == {4}:
# roll logic