我有两个列表,它们被分组在一个列表中。我试图从列表中取出一个项目并检查它是否位于csv列中,如果是,我想检索特定的行。我的尝试如下:
csv:
Name Age
Susan 40
Paul 45
Matt 22
Mary 28
Ben 25
Tom 32
代码:
group = [['Paul', 'Matt'], ['Ben', 'Tom']]
ages = []
with open('People.csv') as fh:
spreadsheet = csv.DictReader(fh, delimiter=',')
for row in spreadsheet:
for list in group:
for person in list:
if row['Name'] == str(person):
ages.append(row['Age'])
print(ages)
有什么建议吗?
将列表平展将简化处理:
import itertools
group = [['Paul', 'Matt'], ['Ben', 'Tom']]
flat_group = list(itertools.chain(*group))
with open('People.csv') as fh:
spreadsheet = csv.DictReader(fh, delimiter=',')
ages = [row['Age'] for row in spreadsheet if row['Name'] in flag_group]