检测字符在多个列表中的位置

时间:2016-10-02 04:43:34

标签: python list if-statement

我希望能够在字符串中搜索不同列表中的字符。

例如:

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

4 个答案:

答案 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