内包表記を使用して次の結果を生成することは可能ですか。両方の値 a、b などを取得しようとしましたが、私が知っている唯一の方法はインデックスを作成することであり、それを行うと文字列インデックスが範囲外になります。
path = ['a', 'b', 'c', 'd', 'e']
--
a, b
b, c
c, d
d, e
内包表記を使用して次の結果を生成することは可能ですか。両方の値 a、b などを取得しようとしましたが、私が知っている唯一の方法はインデックスを作成することであり、それを行うと文字列インデックスが範囲外になります。
path = ['a', 'b', 'c', 'd', 'e']
--
a, b
b, c
c, d
d, e
ここで使用できzip
ます:
>>> lis = ['a', 'b', 'c', 'd', 'e']
>>> for x,y in zip(lis,lis[1:]):
... print x,y
...
a b
b c
c d
d e
これを達成する最善の方法は、リスト内包表記ではなく、次のzip()
とおりです。
advanced = iter(path)
next(advanced, None)
for item, next_item in zip(path, advanced):
...
値に対してイテレータを生成し、それを 1 つ進めて 2 番目の値から開始し、元のリストと高度なリストを同時に を使用してループしzip()
ます。