将多个变量(或字符串)与列表进行比较
Compare Multiple Variable (or String) to List
我正在尝试创建一个将多个字符串与列表进行比较的逻辑,例如:
myList=['str1','str2','str3']
if 'str1' in myList and 'str5' in myList and 'str10' in mylist:
print('all three')
elif 'str1' in myList or 'str5' in myList or 'str10' in mylist:
print('any')
有没有什么简单的方法可以做到这一点(不重复 in myList 或任何简单的方法用于许多输入)?上面例子的正确答案是 'any'.
逻辑应该能够处理 'or' 和 'and'。
*我已经浏览过这个主题,但找不到我正在寻找的答案
您可以创建一个包含所有要检查的项目的新列表并浏览新列表:
myList=['str1','str2','str3']
new_checks=['str2', 'str4']
for i in new_checks:
if i in myList:
print(i)
您还可以将结果保存到新列表中,如果它不为空,则打印您需要的任何内容:
myList=['str1','str2','str3']
new_checks=['str2', 'str4']
in_first_list=[]
for i in new_checks:
if i in myList:
in_first_list.append(i)
print(in_first_list)
或者只是项目的长度.. len(in_first_list)
您可以使用集合而不是列表。然后使用 issubset
子集函数和 difference
的长度来检查两者之间是否存在任何公共值。
mySet={'str1','str2','str3'}
if {'str1' , 'str5', 'str10'}.issubset(mySet):
print('all three')
elif len({'str1' , 'str5', 'str10'}.difference(mySet))>0:
print('all three')
已经存在any
和all
compare_list = ['str1', 'str5', 'str10']
print(any(i in compare_list for i in myList))
print(all(i in compare_list for i in myList))
我喜欢使用 python 具有的 any
和 all
功能。连同列表理解,解决方案如下所示:
myList=['str1','str2','str3']
if all([s in myList for s in ['str1', 'str5', 'str10']]):
print('all three')
elif any([s in myList for s in ['str1', 'str5', 'str10']]):
print('any')
您可以提供要检查的字符串列表作为任何可迭代对象。
我正在尝试创建一个将多个字符串与列表进行比较的逻辑,例如:
myList=['str1','str2','str3']
if 'str1' in myList and 'str5' in myList and 'str10' in mylist:
print('all three')
elif 'str1' in myList or 'str5' in myList or 'str10' in mylist:
print('any')
有没有什么简单的方法可以做到这一点(不重复 in myList 或任何简单的方法用于许多输入)?上面例子的正确答案是 'any'.
逻辑应该能够处理 'or' 和 'and'。 *我已经浏览过这个主题,但找不到我正在寻找的答案
您可以创建一个包含所有要检查的项目的新列表并浏览新列表:
myList=['str1','str2','str3']
new_checks=['str2', 'str4']
for i in new_checks:
if i in myList:
print(i)
您还可以将结果保存到新列表中,如果它不为空,则打印您需要的任何内容:
myList=['str1','str2','str3']
new_checks=['str2', 'str4']
in_first_list=[]
for i in new_checks:
if i in myList:
in_first_list.append(i)
print(in_first_list)
或者只是项目的长度.. len(in_first_list)
您可以使用集合而不是列表。然后使用 issubset
子集函数和 difference
的长度来检查两者之间是否存在任何公共值。
mySet={'str1','str2','str3'}
if {'str1' , 'str5', 'str10'}.issubset(mySet):
print('all three')
elif len({'str1' , 'str5', 'str10'}.difference(mySet))>0:
print('all three')
已经存在any
和all
compare_list = ['str1', 'str5', 'str10']
print(any(i in compare_list for i in myList))
print(all(i in compare_list for i in myList))
我喜欢使用 python 具有的 any
和 all
功能。连同列表理解,解决方案如下所示:
myList=['str1','str2','str3']
if all([s in myList for s in ['str1', 'str5', 'str10']]):
print('all three')
elif any([s in myList for s in ['str1', 'str5', 'str10']]):
print('any')
您可以提供要检查的字符串列表作为任何可迭代对象。