python - "if"语句查找剩余数字并附加到 csv 列表中

标签 python python-3.x list csv if-statement

我试图弄清楚如何编写如何从两个列表中查找和附加剩余数字的逻辑。

我有一个 CSV,其数据格式如下

jeffrey,192.168.1.1,example1.com,30220,internet serverice provider 1
mike,192.168.1.2,example2.com,30220,internet service provider 1
frank,192.168.1.3,example3.com,30220,internet service provider 1
lucy,192.168.1.4,example4.com,14619,internet service provider 2
louisa,192.168.1.5,example5.com,14619,internet service provider 2
emily,192.168.1.6,example6.com,3357,internet service provider 3 
john,192.168.1.7,example7.com,210,internet service provider 4

我的列表如下

list_1 = ['3357', '210'] 
list_2 = ['14619'] 
list_3 = [] # List I want that remaining numbers to be in 

我假设使用 if 语句是正确的方法。

类似

import csv

document = file.csv

with open ('test_file', 'w') as output:
        with document as file:
            output_data = csv.writer(output, delimiter = ',')
            reader = csv.reader(file)
            list_1 = ['3357', '210'] 
            list_2 = ['14619'] 
            list_3 = [] # List I want that remaining numbers to be in for row in reader:
               if row[3] not in list_1 and list_2:
                  list_3.append(row[3])
                  print(list_3)

我上面的代码没有得到我想要的结果

30220

非常感谢任何帮助。

最佳答案

如果您可以使用pandas Dataframe,您可以按照以下方式进行

import pandas as pd
df = pd.read_csv('sample.csv', header=None)
list_1 = [3357, 210] 
list_2 = [14619] 
list(set(df[3].tolist()) - set(list_1 + list_2))

输出是 [30220]

关于python - "if"语句查找剩余数字并附加到 csv 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58806242/

相关文章:

python - 无法返回从文件(.csv)读取的列表

python - 我可以只卸载并重新安装 Spyder,而不是整个 Anaconda 框架吗?

list - 在 Scala 中展平元组列表?

python - 更改列表的元素会影响/不影响派生列表

c++ - 自定义链表 C++ 中的内存泄漏

python - Scrapy 内存错误(请求太多)Python 2.7

python模块层次结构命名约定

python - 异步抓取并使用django celery和redis存储结果并存储我的正确方法是什么?

python - 使用 Python 3 提取 XML 元素和属性数据

python - Pygame 使用 PyTMX 加载 Tilemap