Цикл Python для печати списка индексов или массивов - PullRequest
0 голосов
/ 14 октября 2019

Добрый день, Python Новичок здесь. Я пытаюсь вернуть список информации о клиенте, который был извлечен из текстового файла. Мне нужно, чтобы вывод был в формате Имя, Номер счета, Дата. Моя первоначальная мысль:

очистить данные, создать список Печать по номеру индекса например, (Имя 1, Номер счета 1, Дата 1)

К сожалению, это не сработает, поскольку список будет распечатансо всеми именами, затем все номера счетов, а затем даты. Мне нужно распечатать список как имя, номер счета, дату.

Я почти уверен, что это из-за того, как у меня работает цикл. Ниже приведен код, над которым я работал.

   import re

fin = open(destFileLoc,"r")
text = fin.read()


nameMatch = re.findall(r'\n\w+\s+\w+\s\w+', text)
# for i in range(len(nameMatch)):
#     name = nameMatch # print("Name: " + nameMatch[i])

acctMatch = re.findall(r'\s{4}\d{8}', text)
# for i in range(len(acctMatch)):
#     account = acctMatch  ##print("Account Num: " + acctMatch[i])

dateMatch = re.findall(r'(\d+/\d+/\d+)', text)
# for i in range(len(dateMatch)):
#     date = dateMatch  ## print("Date of Service : " + dateMatch[i])

patList = [[nameMatch], [acctMatch], [dateMatch]]
for i in range(patList):
    print("====== Name     Account Number       Date ======\n" + str(nameMatch[i]), str(acctMatch[i]), str(dateMatch[i]))

Ответы [ 2 ]

1 голос
/ 14 октября 2019

вы можете попробовать использовать zip, который объединяет несколько списков

for name, acctNum, date in zip(nameMatch, acctMatch, dateMatch):
    print(str(name), str(acctNum), str(date))
0 голосов
/ 14 октября 2019

Попробуйте ...

См. Также Модуль format

nameMatch =["Smith", "Jones", "Thompson"]
acctMatch =["12345", "54321", "22333"]
dateMatch =["2019-10-1", "2019-10-2", "2019-10-3"]

a = list(zip(
    nameMatch,
    acctMatch, 
    dateMatch
))

print(a)

for _list in a:
    print("=========================")
    print("Printing the list itself: ", _list)
    print ('Printing the items in _list:', _list[0], _list[1], _list[2])

print("=========================")
print ('Printing the items with format and columns:')
for _list in a:
    print( '{0:.<10}{1:.<10}{2:.<10}'.format(_list[0], _list[1], _list[2]))

ВЫХОД:

[('Smith', '12345', '2019-10-1'), ('Jones', '54321', '2019-10-2'), ('Thompson', '22333', '2019-10-3')]
=========================
Printing the list itself:  ('Smith', '12345', '2019-10-1')
Printing the items in _list: Smith 12345 2019-10-1
=========================
Printing the list itself:  ('Jones', '54321', '2019-10-2')
Printing the items in _list: Jones 54321 2019-10-2
=========================
Printing the list itself:  ('Thompson', '22333', '2019-10-3')
Printing the items in _list: Thompson 22333 2019-10-3
=========================
Printing the items with format and columns:
Smith.....12345.....2019-10-1.
Jones.....54321.....2019-10-2.
Thompson..22333.....2019-10-3.
...