这似乎是应该已经有答案的问题,但我没有找到答案。如果有人知道已经回答了这个问题的其他问题,请通过链接发表评论。
我的问题是,有没有一种方法可以使用.format方法将列表中的项目输入到字符串中?使用特定的索引进行格式化有点痛苦,我想知道是否可以使用“ for i in list”技术。
而不是这样:
x = [1, 2, 3, 4, 5]
print 'The first 4 items in my list are {}, {}, {}, {}'.format([x[0], x[1], x[2], x[3])
我可以做类似的事情:
x = [1, 2, 3, 4, 5]
print 'The first 4 items in my list are {}, {}, {}, {}'.format([i for i in x if i < 5])
如果我按照这些方法尝试,它将无法正常工作,并且我将收到“元组索引超出范围”错误,因为它将其视为仅一项而不是4个单独的项。我只是想知道这是否可能。
您可以简单地打开列表的包装:
>>> x = [1, 2, 3, 4, 5]
>>> 'The first 4 items in my list are {}, {}, {}, {}'.format(*x)
'The first 4 items in my list are 1, 2, 3, 4'
>>>
任何剩余的参数将被忽略。
您可以在列表理解中使用string.join()
x = [1, 2, 3, 4, 5]
print 'The first 4 items in my list are {}'.format(', '.join([str(i) for i in x if i < 4]))
# The first 4 items in my list are 1, 2, 3
注意:这仅打印三个元素,因为x
中只有3个元素与< 4
]相匹配
如果您的列表理解只是输出4个元素的尝试,否则您对使用列表理解并不真正感兴趣,否则iCodez的解决方案会更好,更高效。
rev_arr = [4,3,2,1]
str_arr.format(', '.join([str(element) for element in rev_arr]))