【问题标题】:Getting iterations of a loop to output on same line获取循环的迭代以在同一行上输出
【发布时间】:2018-12-09 22:33:03
【问题描述】:

我需要输入一系列文本,并将它们与数字和一些格式结合起来。问题是我不知道这一系列输入事先会有多少元素。我知道这对于一定数量的输入来说很容易做到,但我需要一个可以迭代尽可能多的函数。

所以基本上我需要服用“苹果香蕉樱桃......”和“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

【问题讨论】:

  • 不确定,您的问题到底是什么。也许this

标签: python loops for-loop


【解决方案1】:

这就是你想要的:

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

另一种解决方案很简单:

repr({fruit: maxfruit for fruit in fruits})

【讨论】:

  • 支持你的,比我的更好:D
  • 是使用“for listname in listname”的关键吗?我觉得它没有让我在行中间做“for i in listname”
  • 我不明白你的问题。
【解决方案2】:

一种方法是这样的:

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}"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    相关资源
    最近更新 更多