我希望能够在字符串中搜索不同列表中的字符。
例如:
list1的= ['一个']
列表2 = [' B&#39]
如果用户输入了'例如。 Python应该打印' list1'
但是,如果用户输入是' ab'则Python应该打印list1和list2
现在我正在尝试使用此函数查询列表,但我必须在两个单独的if语句中查询每个列表,如下所示。
test_Entrez ... ok
test_Entrez_online ... FAIL
test_Entrez_parser ... ok
test_Enzyme ... ok
答案 0 :(得分:2)
实施例
list_1 = ['a', 'b', 'c']
list_2 = ['d', 'e', 'f']
input = 'b'
if input in list_1:
print "list1"
if input in list_2:
print "list2"
输出将是 “列表1”
答案 1 :(得分:2)
{{1}}
如果要检查两个字符是否至少在一个列表中,则此方法有效。对于更多输入字符,您可以添加一些简单的循环逻辑
答案 2 :(得分:1)
choice = input("choose a letter")
if choice in list1:
print(list1)
elif choice in list2:
print(list2)
else:
print("choice not listed")
答案 3 :(得分:0)
所以,你有一些清单:
list1 = [ ... ]
list2 = [ ... ]
...
首先,您需要能够一起收集所有列表,然后检查每个列表是否包含指定项目:
for lst in list1, list2, list3:
if mychar in lst:
print(lst)
break
else:
print('Specified lists do not contain', mychar)
请注意,只要在其中一个列表中找到项目,它就会停止。而且,它没有打印列表的名称 - 如果你想要它,你需要制作名为的列表:
class NamedList(list):
def __init__(self, *args, name=None, **kwargs):
self.name = name
super().__init__(*args, **kwargs)
def __str__(self): # only if you need that specific use
if self.name is not None:
return str(self.name)
return super().__str__()
# Then use as follows
std = NamedList(['ISO', 'GOST', 'etc'], name='Standards')
sizes = NamedList(['A4', 'Letter'], name='Paper sizes')
smthng = 'Letter'
for nlst in std, sizes:
if smthng in nlst:
print(nlst) # gives you 'Paper sizes'
对于兼容python 2.x / 3.x的更正:,请使用this