有没有办法在python的.format方法中插入列表?

时间:2018-08-01 19:23:03

标签: python list printing string.format

我想做类似的事情:

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])可以达到类似的效果,但是我的清单很长,所以我不想这么做。

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