Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python获取列表中不在列表中的项_Python - Fatal编程技术网

Python获取列表中不在列表中的项

Python获取列表中不在列表中的项,python,Python,我有一份国家名单: 国家=[“美国”、“加拿大”、“法国”、“日本”、“土耳其”、“德国”、“加纳”、“香港”、“英国”] 我想得到所有不包含任何国家的行。 这是我的代码: with open('file.txt') as f: lines = f.readlines()[1:5] a = [line.split(':') for line in lines] for country in countries: for line in a:

我有一份国家名单: 国家=
[“美国”、“加拿大”、“法国”、“日本”、“土耳其”、“德国”、“加纳”、“香港”、“英国”]

我想得到所有不包含任何国家的行。 这是我的代码:

with open('file.txt') as f:
    lines = f.readlines()[1:5]
    a = [line.split(':') for line in lines]
    for country in countries:
        for line in a:
            if country not in line:
                print(line)
打印(行)打印所有行,而不是打印不包含国家/地区的行。

这就是和函数的用途

countries = ['United States', 'Canada', 'France', 'Japan', 'Turkey', 'Germany', 'Ghana', 'Hong Kong', 'United Kingdom']
with open('file.txt') as f:
    lines = f.readlines()[1:5]
    a = [line.split(':') for line in lines]
    for line in a:
        if not any(country in line for country in countries):
            print(line)
您可以尝试以下方法:

data = [i.strip('\n').split(":") for i in open('filename.txt')]
countries = ['United States', 'Canada', 'France', 'Japan', 'Turkey', 'Germany', 'Ghana', 'Hong Kong', 'United Kingdom']
final_data = [i for i in data if not any(b in countries for b in i)]

但是有了一个集合,你可以简单地说:
countries.isdisjoint(line)
。是的,
line
不是一个行/字符串,而是一个列表-它可能实际起作用,但可能不是OP的预期方式。我们应该看到一些样本行和这些行所需的输出,以确保。。。