代替 zip 的替代方法

Alternate ways in place of zip

我有以下输入,

inp = 'Sample'
n = 5

我想生成一个 n 元素的元组列表,用索引打包 input。所以我的输出是,

[('Sample', 0), ('Sample', 1), ('Sample', 2), ('Sample', 3), ('Sample', 4)]

下面的代码片段做得很好,

output = zip([inp]*n, range(n))

只是想知道解决相同问题的替代方法?

最明显的解决方案(列表理解)已经 , so here's an alternative with 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

inp='sample'
n=5
print [(inp,i) for i in range(n)]

它显​​示 O/P 为:

[('sample', 0), ('sample', 1), ('sample', 2), ('sample', 3), ('sample', 4)]