Подать 'за' л oop словами - PullRequest
       3

Подать 'за' л oop словами

0 голосов
/ 15 января 2020

У меня есть следующий файл .txt:

a.txt

, который показывает следующие 2 строки данных:

300 100 500 250 150
34984 29220 43640 36410 7980

Мне нужно создать код, который создает словарь, который показывает следующий результат:

A   300
B   100
C   500
D   250
E   150

Я пробовал с этим кодом, но я не могу отделить цифры, а также выбрать только первую строку. Есть идеи?

f.read
import string
mayusculas = string.ascii_uppercase
f = open("a.txt", "r")
for i, c in zip(mayusculas, f):
     print(i, c)
f.close()

enter image description here

Спасибо всем.

Ответы [ 3 ]

2 голосов
/ 15 января 2020

Сохраняя структуру вашего кода, split() - это то, что вы ищете:

f = '''300 100 500 250 150
34984 29220 43640 36410 7980'''    

for i, c in zip(mayusculas, (f.split('\n')[0]).split(' ')):
         print(i, c)

Объяснение:

f.split('\n'): разбивает вашу строку в список по новой строке, поэтому вы получаете список из двух элементов

(f.split('\n')[0]).split(' '): я беру первый элемент в вашем списке и делю его на пробелы, получая список из пяти элементов с пятью необходимыми элементами, как указано в вашем примере.

Выход:

A 300
B 100
C 500
D 250
E 150
1 голос
/ 15 января 2020

Несколько замечаний по вашему коду: 1. Всегда открывайте файлы с помощью диспетчера контекста. 2. Вам нужно прочитать файл по одной строке за раз. 3. Используйте split, чтобы разбить строку, не вводите ей никаких аргументов. так что он может правильно анализировать вкладки и несколько пробелов. Собрав все это вместе, ваш код должен выглядеть так:

import string
mayusculas = string.ascii_uppercase
with open("clientes_pibpc.txt", "r") as f:
    for i, c in zip(mayusculas, f.readline().split()):
        print(i, c)
1 голос
/ 15 января 2020

Просто прочитайте первую строку файла и затем разделите его, а затем запишите в верхнем регистре:

with open('a.txt', 'r') as f:
    data = f.readline().split()
    final_dict = dict(zip(string.ascii_uppercase, data))
final_dict
{'A': '300', 'B': '100', 'C': '500', 'D': '250', 'E': '150'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...