0

次の配列から、どのように出力を取得できますか

arr=["harry","sally","tom"]

harry
harry
harry
sally
sally
tom

sally
sally
sally
tom
tom
harry

tom
tom
tom
harry
harry
sally

何を試したか

>>> for i in range(len(arr)):
...     print arr[i] * 3
...     print arr[i+1]*2
...     print arr[i-1] 
... 

Traceback (most recent call last):
File "<stdin>", line 3, in <module>
IndexError: list index out of range
4

2 に答える 2

3

モジュラス演算子を使用してリストの先頭に折り返すか、リストを2倍にしますが、元の長さを使用します。

于 2012-10-05T13:38:52.317 に答える
2
>>> for i in range(len(arr)):
        print arr[i % len(arr)] * 3
        print arr[(i+1) % len(arr)] * 2
        print arr[(i+2) % len(arr)] * 1
于 2012-10-05T13:44:10.910 に答える