2016-07-13 10 views
1

ユーザが配列の各項目を入力した順序でユーザー入力から作成した配列を印刷することを含むPythonプログラムを作成していました。残念ながら、私はそれにはほとんど問題がありませんでした。最初のアイテムをセットの1つで2回繰り返し、次に別のセットで最後の2アイテムを先頭に置きます。 シェルで配列をチェックしたところ、適切な量の配列が正しい順序で含まれていたので、何が起こっているのか分かりません。私のスクリプトは次のようになります。印刷時に配列項目の順序が変更される

i = 1 
lines = [] 
for i in range (1, (leng + 1)): 
    lines.append(input()) 
input() # The data stripped is not used, the input is a wait for the user to be ready. 
i = 0 
for i in range (0, (leng + 1)): 
    print(lines[i - len(lines)]) 

私の検索が私に私の目的のためには何も見つからなかった(しかし、その後、再び、私は私の最後の質問のように、正しい検索用語を使用していない可能性が)。 存在する場合は、複製してください。私は答えが欲しい。

答えて

2

あなたはこれをしたくないですか?あなたのコードが間違って何の説明として

for line in lines: 
    print(line) 

EDIT

...あなたは1つの回数が多すぎる(leng+1代わりのleng)をループしています。次にi - len(lines)を使用していますが、これはおそらく大丈夫ですが、iに相当します。あなたのコードのためのもう一つの修正は以下のようになります。

for i in range(len(lines)): 
    print(lines[i]) 

SECOND EDIT

私は最も簡単な、最も慣用バージョンと思われるものにあなたの完全なコードを書き換える:

# store leng lines 
lines = [input() for _ in range(leng)] 

# wait for user to be ready 
input() 

# print all the lines 
for line in lines: 
    print(line) 
関連する問題