代码之家  ›  专栏  ›  技术社区  ›  dark horse

基于索引从Python列表筛选值

  •  -1
  • dark horse  · 技术社区  · 7 年前

    with open('file.csv') as f:
        lines = f.read().splitlines()
        lines = [x.strip() for x in lines] 
    

    我可以提取文件值的csv文件的基础上的索引,但不能过滤相应的值。下面是csv文件中数据的示例视图

    name,parent,child
    Apple,iPhone,iPhoneX
    Samsung,Note,Note 5
    

    如果有人能帮忙,我怎样才能从上面提取iPhone和iPhoneX之类的值呢。谢谢

    2 回复  |  直到 7 年前
        1
  •  0
  •   Sagi Golan    7 年前

    https://docs.python.org/2/library/csv.html ,文件第一行中的值将用作每行的字段名(属性)

    import csv
    
    with open('file.csv') as csvfile:
         reader = csv.DictReader(csvfile)
         for row in reader:
             print(row['name'], row['parent'], row['child'])
    
        2
  •  4
  •   DeepSpace    7 年前

    该文件是CSV文件。为什么不退后几步,这样对待呢?

    csv.DictReader 索引完全由列名封装:

    import csv 
    
    with open('file.csv') as f:
        reader = csv.DictReader(f)
        for line in reader:
            print(line['parent'], line['child'])
    

    # iPhone iPhoneX
    # Note Note 5
    

    如果出于某种原因坚持处理索引,也可以这样做:

    import csv 
    
    with open('file.csv') as f:
        reader = csv.reader(f)
        next(reader)  # skipping the header line
        for line in reader:
            print(line[1], line[2])
    

    #iPhone和iPhoneX
    
    推荐文章