Получение итераций цикла для вывода на одной строке - PullRequest
0 голосов
/ 10 декабря 2018

Мне нужно взять ряд текстовых вводов и объединить их с числом и некоторым форматированием.Загвоздка в том, что я не знаю, сколько элементов в серии входов будет иметь заранее.Я знаю, что это будет легко сделать для заданного количества входов, но мне нужна функция, которая будет повторять столько раз, сколько необходимо.

В общем, мне нужно взять 'apple banana cherry ...' и '5' и вывести:

str('{"apple": 5, "banana": 5, "cherry": 5, "...": 5}')

Это то, что у меня есть:

print("Enter fruits:")
fruits = [x for x in input().split()]
print("Enter Maximum Fruits per Day")
maxfruit = input()
def maxfruitfuncstep1(x,y):
    return str('"' + x + '"' + ": " + y)
for i in fruits: 
    print("{" + maxfruitfuncstep1(i,maxfruit) + "}")

но это только дает мне вывод:

{"apple": 5}
{"banana": 5}
{"cherry": 5}

Как я могу заставить функцию работать горизонтально в распечатке?Я пытался использовать ",". Join, но это просто дало мне:

",a,p,p,l,e,",:, ,5

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Один путь - это что-то вроде:

fruits = ['banana', 'strawberry', 'cherry']

max_num = 5

from collections import defaultdict

result = defaultdict(dict)

for x in fruits:
    result[x] = max_num

str(dict(result))

"{'banana': 5, 'strawberry': 5, 'cherry': 5}"
0 голосов
/ 10 декабря 2018

Это то, что вы хотите:

fruits = ["apple", "banana", "cherry"]
maxfruit ="5"
print("{" + ", ".join(fruit + ": " + maxfruit for fruit in fruits) + "}")

Другое решение просто:

repr({fruit: maxfruit for fruit in fruits})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...