我想做类似的事情:
list = [1,2,3]
valstring = "one: {}, two: {}, three: {}".format(list)
print(valstring)
结果:
one: 1, two: 2, three: 3
像这样可能吗?我知道使用.format(list[0], list[1], list[2])
可以达到类似的效果,但是我的清单很长,所以我不想这么做。
答案 0 :(得分:2)
是的,请使用星号*
(在Python中称为“ 解包”):
lst = [1,2,3]
valstring = "one: {}, two: {}, three: {}".format(*lst)
print(valstring)
打印:
one: 1, two: 2, three: 3
答案 1 :(得分:0)
如果要为任意长的输入生成这些字符串,则可以使用inflect
包来获取整数的英语单词。
import inflect
eng = inflect.engine()
l = [5, 4, 3, 2, 1]
pairs = ['{}: {}'.format(eng.number_to_words(index), value) for index, value in enumerate(l, start=1)]
print(', '.join(pairs))
# one: 5, two: 4, three: 3, four: 2, five: 1