Преобразование строк значений ключа-нескольких в пары ключ-значение - PullRequest
0 голосов
/ 08 апреля 2019

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

Я хочу вывести данные в виде пар ключ-значение.

Как это можно сделать в Python?

Ввод:

1: 200
2:
3: 300 400 abc
4: xyz 300

Желаемый вывод:

1: 200
2:
3: 300
3: 400
3: abc
4: xyz
4: 300

Если это облегчает, строка 2 может быть исключена из вывода.Вывод будет отсортирован по ключу (1-й столбец).

Код для запуска:

# Open the text file
file = open("data.txt", "r")

# Read each \n terminated line into a list called 'lines'
lines = file.readlines()

# Iterate through each line
for line in lines:
  # Remove leading/trailing spaces and newline character
  line = line.strip()

  # Split the line into list items (but the number varies with each line)
  .... = line.split(" ")
  .
  .
  ?

1 Ответ

1 голос
/ 08 апреля 2019

Используя простую итерацию.

Пример:

result = []
with open(filename) as infile:
    for line in infile:                   #Iterate each line
        key, val = line.split(":")        #Get key-value
        for i in val.strip().split():
            result.append((key, i))

with open(filename, "w") as outfile:      #Write Output
    for line in result:
        outfile.write(": ".join(line) + "\n")  

Выход:

1: 200
3: 300
3: 400
3: abc
4: xyz
4: 300
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...