列表附加在python中跳过一行

列表附加在python中跳过一行,python,csv,dictionary,cs50,Python,Csv,Dictionary,Cs50,我正在努力解决cs50课程中的一个问题集 我通过csv.DictReader从csv文件中读取数据,我想在一个列表中获取第一行(包含标题),然后在另一个列表中获取其他行 我的实现是这样的 line_count = 0 with open(argv[1], "r") as csvfile: csvreader = csv.DictReader(csvfile) for row in csvreader: if line_count == 0:

我正在努力解决cs50课程中的一个问题集 我通过csv.DictReader从csv文件中读取数据,我想在一个列表中获取第一行(包含标题),然后在另一个列表中获取其他行 我的实现是这样的

line_count = 0
with open(argv[1], "r") as csvfile:
    csvreader = csv.DictReader(csvfile)
    for row in csvreader:
        if line_count == 0:
            fields = row
            line_count += 1
        else:
            people.append(row)
            line_count += 1
''' or
fields = []
with open(argv[1], "r") as csvfile:
    csvreader = csv.DictReader(csvfile)
    fields = next(csvreader)
    for row in csvreader:
        people.append(row)
'''
在这两种方式中,我的csv文件中标题后的第一行被跳过 csv看起来像这样

name,AGATC,AATG,TATC
Alice,2,8,3
Bob,4,1,5

Alice被跳过,不会进入我的列表。DictReader假定有一个标题,并为您预读它。
DictReader
的一个特点是,您可以使用列名访问行中的数据,因此它总是将第一行作为标题读取。您的注释代码已接近正常工作状态,即

FirstName,LastName,Age
John,Doe,25
Jane,Doey,26
可通过以下内容阅读:

with open(argv[1], "r") as csvfile:
    csvreader = csv.DictReader(csvfile)
    fields = csvreader.fieldnames  # ['FirstName','LastName','Age']
    for row in csvreader:
        people.append(row)

csv.Dictreader
已经为您跳过了标题行,所以您不需要手动跳过它。谢谢@Oli我使用了这样的语法,现在它对我有用csvreader=csv。对于csvreader中的行,Dictreader(csvfile):fields=row break csvreader=csv.Dictreader(csvfile)对于csvreader中的行:people.append(行)