Фильтрация значений из списка Python на основе индекса - PullRequest
0 голосов
/ 13 ноября 2018

Есть простой вопрос о списках Python. Я пытаюсь прочитать CSV-файл, который содержит некоторые данные, как показано ниже:

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 ]

0 голосов
/ 13 ноября 2018

вы можете использовать DictReader, как описано в 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'])
0 голосов
/ 13 ноября 2018

Файл является файлом 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
# Note Note 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...