我有一段相当繁琐的代码:
s=[1,2,3,4,5,6,7,8,9]
if 1 in s or 2 in s or 3 in s or 4 in s or 5 in s or 6 in s or 7 in s or 8 in s or 9 in s:
print("Yes, a number between 1-9 exists in list s)
有比这更好的方法吗?我想检查列表中[1-9]之间是否存在任何数字。
答案 0 :(得分:4)
您可以使用any()
和range(1, 10)
来检查某个号码是否在s
中:
if any(x in s for x in range(1, 10)):
print('yes')
这会使用generator expression来避免在将值传递给any()
之前创建整个值列表。
答案 1 :(得分:0)
我喜欢@Simeon Visser的回答,但只适用于小清单。
如果您需要使用大型列表执行此类操作,则应该使用set intersection,如下所示:
data_to_test = [1, 2, 3, 4, 5, 6, 7, 8, 9]
values = list(range(1, 10))
set_data = set(data_to_test)
set_values = set(values)
if set_data.intersection(set_values):
print("yes")