Какая операция необходима для получения вывода с использованием входного текста списка и разделения строки на пробел?ответ наиболее ценится - PullRequest
0 голосов
/ 24 октября 2018

вход:

name1 500

name2 200

name3 100

name4 400

name5 300

вход: # второй вход

name1 100 name2

name2 50 name3

name3 25 name4

name5 100 name3

name4 75 name1

выход:

name1 475

name2 250

name3 225

name4 350

name5 200

1 Ответ

0 голосов
/ 24 октября 2018

Используйте словарь с .split() и int, когда вы переносите отнять один элемент словаря и добавить к другому.

lst = ['name1 500', 'name2 200', 'name3 100', 'name4 400', 'name5 300']

lst2 = ['name1 100 name2', 'name2 50 name3', 'name3 25 name4', 'name5 100 name3', 'name4 75 name1']

dct = {i.split()[0]: int(i.split()[1]) for i in lst}

for i in lst2:
    dct[i.split()[0]] -= int(i.split()[1])
    dct[i.split()[-1]] += int(i.split()[1])

print(dct)
# {'name1': 475, 'name2': 250, 'name3': 225, 'name4': 350, 'name5': 200}

Печать строки для строки:

for i in dct:
    print(f'{i} {dct[i]}\n')
name1 475

name2 250

name3 225

name4 350

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