如何将单个 csv 行放入一个没有重复的列表中?
How do I put a single csv row into one list with no duplicates?
我有一个 csv 文件,其中有一行需要放入列表中。该行的一个例子是
row A
apple
apple
apple
orange
orange
watermelon
我需要将该行读入一个没有重复名称的列表中,所以它看起来像
['apple','orange','watermelon']
这是我当前针对此问题的代码:
import csv
start = open('fruits.csv', 'r')
reader = csv.reader(start)
next(reader, None)
for row in reader:
fruits = [row[1]]
print(fruits)
我当前的代码只是将每一行放入其自己的列表中。
在您提供的代码中,您每次循环遍历 for 循环时都会创建一个包含单个项目的新列表。相反,您想维护一个不断增长的列表
import csv
start = open('data.txt', 'r')
reader = csv.reader(start)
next(reader, None)
fruits = [] #define an empty list
for row in reader:
fruits.append(row[1]) #add to the list
请注意,在您提供的数据示例中,只有一列,因此如果我们严格使用该示例
,则它应该是 row[0]
而不是 row[1]
要使列表唯一,您可以将其转换为强制唯一的集合:
fruits = set(fruits)
如果您希望将其转换回列表,请尝试以下操作:
fruits = list(fruits)
请注意,此方法不能保证列表的顺序保持不变。
import csv
data = 'fruits.csv'
fruits = []
# read csv, append unique items to list
with open(data, 'r') as f:
reader = csv.reader(f)
for row in reader:
if row[0] not in fruits:
fruits.append(row[0])
# output: ['row A', 'apple', 'orange', 'watermelon']
print(fruits_in)
我有一个 csv 文件,其中有一行需要放入列表中。该行的一个例子是
row A
apple
apple
apple
orange
orange
watermelon
我需要将该行读入一个没有重复名称的列表中,所以它看起来像
['apple','orange','watermelon']
这是我当前针对此问题的代码:
import csv
start = open('fruits.csv', 'r')
reader = csv.reader(start)
next(reader, None)
for row in reader:
fruits = [row[1]]
print(fruits)
我当前的代码只是将每一行放入其自己的列表中。
在您提供的代码中,您每次循环遍历 for 循环时都会创建一个包含单个项目的新列表。相反,您想维护一个不断增长的列表
import csv
start = open('data.txt', 'r')
reader = csv.reader(start)
next(reader, None)
fruits = [] #define an empty list
for row in reader:
fruits.append(row[1]) #add to the list
请注意,在您提供的数据示例中,只有一列,因此如果我们严格使用该示例
,则它应该是row[0]
而不是 row[1]
要使列表唯一,您可以将其转换为强制唯一的集合:
fruits = set(fruits)
如果您希望将其转换回列表,请尝试以下操作:
fruits = list(fruits)
请注意,此方法不能保证列表的顺序保持不变。
import csv
data = 'fruits.csv'
fruits = []
# read csv, append unique items to list
with open(data, 'r') as f:
reader = csv.reader(f)
for row in reader:
if row[0] not in fruits:
fruits.append(row[0])
# output: ['row A', 'apple', 'orange', 'watermelon']
print(fruits_in)