Печать данных из 2 разных списков и их индекса - PullRequest
0 голосов
/ 03 сентября 2018

Я читаю файл CSV следующим образом:

import csv

with open('X.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')
    objectids = []
    municodes = []


    for row in readCSV:
        objectid = row[2]
        municode = row[5]
        objectids.append(objectid)
        municodes.append(municode)

Тогда я бы хотел напечатать на экране что-то вроде номера строки, "objectids" и "municodes". Я попробовал так: checkfirstline = 0

for uniqueobjid in objectids:
    if checkfirstline is not 0: #to jump the first line (on this data it's a header)
        print("obdid: " + str(uniqueobjid) + " -- city: " )
    else:
        checkfirstline += 1

Моя проблема в том, что я не уверен, как получить номер строки (индекс) и "municodes" из одной и той же позиции.

Я ожидал результата + - вот так:

row:0 ;  obdid: 3; cityid: 20
row:1 ;  obdid: 4; cityid: 20

1 Ответ

0 голосов
/ 03 сентября 2018

Поскольку csv.reader является итератором, вы можете вызвать next один раз, чтобы "пропустить" заголовок:

with open('X.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')
    next(readCSV)
    # as before

Затем используйте enumerate с zip при переборе своих списков:

for idx, (a, b) in enumerate(zip(objectids, municodes)):
    print(f'row:{idx}; obdid: {a}; cityid: {b}')

Для удобства чтения и производительности мы используем f-строки, доступные в Python 3.6 +.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...