私はいくつかの要素のリストを持っています。 [1, 2, 3, 4]
と単一のオブジェクト、例えば。 'a'
。私はリストの要素が第1の位置にあり、単一のオブジェクトが第2の位置にあるタプルのリストを生成したい:[(1, 'a'), (2, 'a'), (3, 'a'), (4, 'a')]
。Python:1つの要素を持つzipリスト
私はこのような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]
ですが、ここで私は、「手動」全体のことを行います。 Haskellでは私は
zipWithScalar l o = zip l $ repeat o
のようなものは、任意の組み込み関数やトリックはどちらか、スカラーまたは普通郵便番号を使用するように私を可能にする何かをビュンすなわちソートの無限のリストについては、あるのだろうか?
https://docs.python.org/3/library/itertools.html#itertools.repeat – jonrsharpe
言ったが、また、あなたはおそらくしたいjonrsharpe通常の関数ではなくジェネレータとして書き直してください。 – OmnipotentEntity
@OmnipotentEntity OPが3.xを使用しているので、単にzip(l、repeat(o))を返すことができます。それは反復子であり、「収穫」する必要はありません。 – jonrsharpe