我有一些元素的列表,例如[1, 2, 3, 4]
和单个对象,例如'a'
.我想生成一个元组列表,列表中的元素位于第一个位置,单个对象位于第二个位置:[(1, 'a'), (2, 'a'), (3, 'a'), (4, 'a')]
.
我可以用zip
块这样做:
def zip_with_scalar(l, o): # l - the list; o - the object
return list(zip(l, [o] * len(l)))
然而,这给了我一种创建不必要的重复元素列表的感觉.
另一种可能性是
def zip_with_scalar(l, o):
return [(i, o) for i in l]
这真的很干净,很像Python ,但我在这里"手动"完成了整个过程.在哈斯凯尔,我会做一些
zipWithScalar l o = zip l $ repeat o
是否有任何内置函数或技巧,无论是用于标量压缩还是用于使我能够使用普通压缩的东西,即某种无限列表?