1

内包表記を使用して次の結果を生成することは可能ですか。両方の値 a、b などを取得しようとしましたが、私が知っている唯一の方法はインデックスを作成することであり、それを行うと文字列インデックスが範囲外になります。

path = ['a', 'b', 'c', 'd', 'e']

--

a, b
b, c
c, d
d, e
4

3 に答える 3

5

ここで使用でき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
于 2013-05-25T11:31:43.123 に答える
3

これを達成する最善の方法は、リスト内包表記ではなく、次のzip()とおりです。

advanced = iter(path)
next(advanced, None)
for item, next_item in zip(path, advanced):
    ...

値に対してイテレータを生成し、それを 1 つ進めて 2 番目の値から開始し、元のリストと高度なリストを同時に を使用してループしzip()ます。

于 2013-05-25T11:32:13.500 に答える