Python: 追加不添加到空列表
Python: append not adding to an empty list
您好,很抱歉,如果这是一个明显的问题,在网上四处查看,我似乎找不到我做错了什么。
我试图在两个单独的 csv 文件(文件 A 和文件 B)中比较两个列表的内容。两个 csv 文件都是 x 行,但每个只有 1 列。文件 A 由行组成,每行都有句子,文件 B 由单个单词组成。我的目标是搜索文件 B 中的行,如果这些行中的任何一行出现在文件 A 中,则将文件 A 中的相关行附加到一个单独的空列表中以进行导出。我是运行的代码如下:
import pandas as pd
#Importing csv files
##File A is 2 rows of sentences in 1 column, e.g. "This list should be picked up for the word DISHWASHER" and "This sentence should not appear in list_AB"
file_A = pd.read_csv(r"C:\Users\User\Desktop\File\file_A.csv")
##File B is 2 rows of singular words that should appear in file A e.g. "DISHWASHER", "QWERTYXYZ123"
file_B = pd.read_csv(r"C:\Users\User\Desktop\File\file_B.csv", converters={i: str for i in range(10)})
#Convert csv files to lists
file_A2 = file_A.values.tolist()
file_B2 = file_B.values.tolist()
#Empty list
list_AB = []
#for loop supposed to filter file_A based on file_B
for x in file_A2:
words = x[0].split(" ")
#print(words)
for y in file_B2:
#print(y)
if y in words:
list_AB.append(x)
print(list_AB)
问题是 print(list_AB) 只是 returns 一个空列表 ([]),而不是 file_A 的过滤版本。我想这样做的原因是因为我想读取的实际 csv 文件包含 21600(文件 A)和 50400(文件 B)行。如果这是一个非常基本的问题,请提前致歉。
编辑:添加了 csv 文件示例的图像,看不到如何上传文件。
问题出在 if-statement y in words
.
这里y
是一个列表。您正在搜索字符串列表(而不是列表列表)中的列表。
使用y[0] in words
解决你的问题。
您好,很抱歉,如果这是一个明显的问题,在网上四处查看,我似乎找不到我做错了什么。
我试图在两个单独的 csv 文件(文件 A 和文件 B)中比较两个列表的内容。两个 csv 文件都是 x 行,但每个只有 1 列。文件 A 由行组成,每行都有句子,文件 B 由单个单词组成。我的目标是搜索文件 B 中的行,如果这些行中的任何一行出现在文件 A 中,则将文件 A 中的相关行附加到一个单独的空列表中以进行导出。我是运行的代码如下:
import pandas as pd
#Importing csv files
##File A is 2 rows of sentences in 1 column, e.g. "This list should be picked up for the word DISHWASHER" and "This sentence should not appear in list_AB"
file_A = pd.read_csv(r"C:\Users\User\Desktop\File\file_A.csv")
##File B is 2 rows of singular words that should appear in file A e.g. "DISHWASHER", "QWERTYXYZ123"
file_B = pd.read_csv(r"C:\Users\User\Desktop\File\file_B.csv", converters={i: str for i in range(10)})
#Convert csv files to lists
file_A2 = file_A.values.tolist()
file_B2 = file_B.values.tolist()
#Empty list
list_AB = []
#for loop supposed to filter file_A based on file_B
for x in file_A2:
words = x[0].split(" ")
#print(words)
for y in file_B2:
#print(y)
if y in words:
list_AB.append(x)
print(list_AB)
问题是 print(list_AB) 只是 returns 一个空列表 ([]),而不是 file_A 的过滤版本。我想这样做的原因是因为我想读取的实际 csv 文件包含 21600(文件 A)和 50400(文件 B)行。如果这是一个非常基本的问题,请提前致歉。
编辑:添加了 csv 文件示例的图像,看不到如何上传文件。
问题出在 if-statement y in words
.
这里y
是一个列表。您正在搜索字符串列表(而不是列表列表)中的列表。
使用y[0] in words
解决你的问题。