2017-02-22 14 views
-1

私はPythonの初心者です(2週間前にコーディングを始め、まだ用語に慣れています)。Python:テキストファイルのリストを読み込んで編集する

私はリストを格納するテキストファイルを持っています(これは配列とも呼ばれています - 正しいと思いますか?)。

[1,Nissan, Red, 5, 2017] 
[2,Ford, Blue, 8, 2012] 
[3,Nissan, Yellow, 9, 2001] 

私の最初の質問は、「これらのリストですか?」です。テキストファイルは上記と同じである場合

Car1 = [1,Nissan,Red, 2017] 
Car2 = [2,Ford, Blue, 2012] 

- どのように私はなどCar1Car2にデータを呼び出してください:彼らは、コードと同じものはありますか?

私の2番目の質問は、「2号車」を検索し、2012年から2016年にかけてどのように変化するのでしょうか?

ご協力いただければ幸いです。

+1

なぜオブジェクトを格納するために 'pickle'を使用していない:あなたは簡単に、それらのそれぞれが同じくらい簡単に定義できバイナリファイルに? –

+1

あなたが見ているのは、シリアライゼーションです。あなたは、いくつかのデータを直列化する正しい方法を見つけようとしています。配列はリストではありませんが、配列は多くの言語で最も一般的なコレクションであり、リストはPythonで最も一般的に使用されるコレクションなので、配列を言うときに何を意味するのかを知っています違う)。あなたが書いたオブジェクトは異種( 'int'、' str'、 'str'、' str')なので、 '(1、Nissan"、 "Red"、2017) int'、 'int') –

+1

これらの大部分があり、それらを非玩具プロジェクトに使用している場合は、正しくシリアル化を行うことを学ぶ正しい時期になります。 'sqlite3' stdlibモジュールを見てください。強力なデータベース構造を作成し、正しく維持する方法を調べます。 –

答えて

1

リストと配列は同義です。データが格納されている場合

質問

1は、一般的には、区切りのテキストファイルとして保存されます。それは、データエントリが何らかの特殊文字で区切られている場所です。たとえば、ファイルが含まれている場合

1,Nissan,Red,5,2017 

これはカンマ区切りのテキストファイル(csv)です。通常は、例のように特定の言語で書式設定されているようにデータを保存する必要はありません。あなたのデータは、名前ではなく位置によってインデックス付けされるだろうようにPythonで2つの

辞書がおそらく必要とされている

質問。あなたのようにあなたのデータを格納した場合:

cars = [ 
    { 
    "index":1, 
    "brand":"Nissan", 
    "color":"Red", 
    "year": 2017 
    },{ 
    "index":2, 
    "brand":"Ford", 
    "color":"Blue", 
    "year": 2012 
    } 
] 

その後、あなたはこの形式は、テキストファイルへの書き込み時にあなたはJSONフォーマットを使用できるようになりますcars[1]["year"] = 2016

設定することができます。他のコメント作成者が述べたように、データをシリアライズ/ピクルしたり、データベースを使用することもできます。

+0

文字で区切られたテキストは、データをファイルに保存するための単なる方法です。文字どおり無限に多くの可能性があります。 (それらのすべてが実用的なわけではありません) –

+0

リストと配列は同義ではありません。私たちには[Pythonでの適切な配列](https://docs.python.org/3/library/array.html)があり、リストではないことに注意してください。 –

1

この場合、私は個人的にdictionariesを選択しました。

{"no": 1, "maker": "Ford", "doors": "4", "year": 2016} 

保存し、ファイルからdictsを読んでpickleと非常に簡単であるか、内蔵json library

関連する問題