0

我试图弄清楚这是如何工作的。示例一:

n = ["1ab", "2an", "3bca", "4adc"]
l = ["1", "2", "3"]
for m in n:
    if "a" in m:
        for k in l:
            if k in m:
                print k
1
2
3

现在我将尝试打印 n 列表的最后一个成员。

n = ["1ab", "2an", "3bca", "4adc"]
l = ["1", "2", "3"]
for m in n:
    if "a" in m:
        for k in l:
            if not k in m:
                print k

2
3
1
3
1
2
1
2
3

我需要打印一个列表成员,它不包含 l 变量中列出的任何数字,但其中包含“a”。

4

4 回答 4

7

由于 4 不在您的列表中l,因此您无法打印它。

于 2013-11-05T18:44:20.567 回答
2
n = ["1ab", "2an", "3bca", "4adc"]
l = ["1", "2", "3"]
for m in n:
    if "a" in m:
        if not any([k in m for k in l]):
            print m

4adc
于 2013-11-05T19:08:58.630 回答
1

答案在你的倒数第二行。对于通过 n 的每个循环,您都会遍历 l,并且 n 的三个成员满足 if not k in m: 条件。所以

循环 1 打印:2,3 循环 2 打印:1,3 循环 3 打印:1,2 循环 4 打印:1,2,3

于 2013-11-05T19:00:17.167 回答
1
>>> l   
['1', '2', '3']
>>> n   
['1ab', '2an', '3bca', '4adc']
for el in n: 
    if(el[0] not in l):
        print(el)

4adc

或者,如果您只想打印 4,则根据您的列表顺序:

for el in n: 
    if(el[0] not in l):
        print(el[0])

现在您刚刚添加到您的问题中,“但包含“a””,添加第二个 iff。

    for el in n: 
        if(el[0] not in l):
            if('a' in el):
                print(el[0],el)
于 2013-11-05T19:12:33.717 回答