我想编写一个获取整数列表并返回True的函数(如果它包含007)。例如看到一些结果。
spy_game([1,2,4,0,0,7,5]) --> True
spy_game([1,0,2,4,0,5,7]) --> True
spy_game([1,7,2,0,4,5,0]) --> False
我有一个代码,它可以正常工作(见下文) 但我想要另一个解决方案!
def spy_game(nums):
code = [0,0,7,'x']
for num in nums:
if num == code[0]:
code.pop(0) # code.remove(num) also works
return len(code) == 1
答案 0 :(得分:1)
这听起来像是一个作业问题,因此,与其提供一个彻底的解决方案,我不如提供一种解决问题的方法。
Python中的字符串和列表都是可迭代的类型,因此您可以为此应用字符串存在的解决方案(即.find()
)并将其应用于列表。
关于字符串的有用功能也是.join()
方法,该方法从列表中创建一个字符串。
因此,查看列表ID IDParent NumberOfChilds
1 NULL 7
2 NULL 1
3 1 0
4 1 5
5 2 0
6 4 0
7 4 3
8 7 0
9 7 1
10 9 0
是否包含序列l = ['a', 'b', 'c', 'd', 'e', 'f']
的一种方法是将两者都转换为字符串并检查s = ['d', 'e', 'f']
是否为字符串。以您的示例为例,由于列表中的元素不是字符串,因此必须对其进行转换以使其与''.join(s) in ''.join(l)
一起使用。
我怀疑itertools
包中还埋藏着一种解决方案,但在这里可能会过分杀人。