我有下面的输入,
inp = 'Sample'
n = 5
我想要生成一个用索引包装n
元素的元组列表。所以我的输出是,
[('Sample', 0), ('Sample', 1), ('Sample', 2), ('Sample', 3), ('Sample', 4)]
下面的片段把工作做得很好,
output = zip([inp]*n, range(n))
只是好奇解决相同问题的其他方法?
发布于 2017-12-19 11:23:39
最明显的解决方案(列表理解)已经是mentioned in the comments,所以这里有一个https://docs.python.org/3/library/itertools.html#itertools.zip_longest的替代方案,只是为了好玩-
from itertools import zip_longest
r = list(zip_longest([], range(n), fillvalue=inp))
print(r)
[('Sample', 0), ('Sample', 1), ('Sample', 2), ('Sample', 3), ('Sample', 4)]
在python2.x上,您需要的是izip_longest
。
发布于 2017-12-24 14:30:55
inp='sample'
n=5
print [(inp,i) for i in range(n)]
它显示O/P为:
[('sample', 0), ('sample', 1), ('sample', 2), ('sample', 3), ('sample', 4)]
https://stackoverflow.com/questions/47885839
复制相似问题