Python:使用 .format 方法用列表项填充字符串
Python: using .format method to populate string with list items
这似乎是一个应该已经有答案的问题,但我没有找到答案。如果有人知道另一个问题已经回答了这个问题,请 post 评论 link。
我的问题是,有没有办法使用 .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])
如果我沿着这些方向尝试某些东西,它不会起作用,我会得到一个 "tuple index out of range" 错误,因为它认为这只是 1 个项目而不是 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]))
我希望它应该给出这样的输出 4 3 2 1 但它返回一个空字符串。
我不明白为什么它返回一个空字符串。
我是新手请详细说明片段的第二行给我
这似乎是一个应该已经有答案的问题,但我没有找到答案。如果有人知道另一个问题已经回答了这个问题,请 post 评论 link。
我的问题是,有没有办法使用 .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])
如果我沿着这些方向尝试某些东西,它不会起作用,我会得到一个 "tuple index out of range" 错误,因为它认为这只是 1 个项目而不是 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]))
我希望它应该给出这样的输出 4 3 2 1 但它返回一个空字符串。 我不明白为什么它返回一个空字符串。 我是新手请详细说明片段的第二行给我