2016-08-31 11 views
-1

の順序を変更するには私は4つの名前であるリスト<strong>(names.txt)</strong>持っている..私は、Pythonに新しいですリスト

をPythonの使用:

  • コリン・
  • ゲイリーを
  • Gibby
  • ロス

ファイルからリストを出力したい場合は、名前の順番を1つのスペースで変更し、その出力を元の"names.txt"ファイルに保存します。

すなわち、RUN1は、次のようになります。コリン・ゲイリーGibbyロス

RUN2は、次のようになります。ゲイリーGibbyロス・コリン・

RUN3は次のようになります。Gibbyロス・コリン・ゲーリー

。 ...等々。

私がこれまで持っているコードはリストとしてファイル出力を取ることができるですが、私は1位の順に移動し、再び保存する方法がわからない:

#!/usr/bin/python 

# Open a file 
with open ('names.txt', 'r') as f: 
    list1 = f.read().splitlines() 
    for item1 in list1[0:4]: 
    print (item1) 
f.close() 

すべてのヘルプ感謝します。ありがとう。

+0

'マイリスト=マイリスト[1] +マイリスト[:1] ' – khelwood

答えて

1

ループ内のインデックス1からすべてを印刷するだけです。エンド印刷されたインデックスの0

for i in range(1:len(list1)): 
    print(list1[i]) 
print(list1[0]) 

それとも、新しいリストでそれを持っている必要がある場合:

list1 = list1[1:] + list1[:1] 
2

This回答内容をどのように彼らはプッシュ」用に最適化された状態collections.dequeを使用してリストをシフトしますそしてその目的のために、以下のサンプルコードをあなたの便宜のために含めました。

from collections import deque 
items = deque([1, 2]) 
items.append(3) # deque == [1, 2, 3] 
items.rotate(1) # The deque is now: [3, 1, 2] 
items.rotate(-1) # Returns deque to original state: [1, 2, 3] 
item = items.popleft() # deque == [2, 3] 
+0

@shravsterあなたは私の投稿にリンクした答えを意味しますか? – Koga

+0

心配しなくても、ちょっと混乱することはありませんでした。 – Koga

0

スライス表記を使用して、このようなシーケンスを回転できます。

def rotate(sequence, shift=1): 
    return sequence[-shift:] + sequence[:-shift] 

>>> rotate([1, 2, 3, 4]) 
[4, 1, 2, 3] 

>>> rotate('hello world', 5) 
'o worldhell' 

>>> rotate(['Colin', 'Gary', 'Gibby', 'Ross'], -1) 
['Gary', 'Gibby', 'Ross', 'Colin'] 

このrotate機能は元の配列を突然変異させない。非常に長いシーケンスと高速なパフォーマンスのために、標準ライブラリからcollections.dequeをチェックアウトすることができます。 dequeシーケンスタイプは、メモリおよびパフォーマンス効率のよい方法でインプレースで回転することができます。

0

これはあなたの既存のnames.txtファイルを読み込んで内容を表示します。その後、1順を変更し、同一のファイルに戻って結果のリストを書き込む:

with open('names.txt', 'r') as f: 
    list1 = f.read().splitlines() 
    print('\n'.join(list1)) 
    list1 = list1[1:] + list1[:1] 

with open('names.txt', 'w') as f: 
    f.write('\n'.join(list1)) 

RUN1

Colin 
Gary 
Gibby 
Ross 

RUN2

Gary 
Gibby 
Ross 
Colin 
関連する問題