2016-12-07 15 views
-5

私は、次のオブジェクトがあります:FILESに新しい要素を追加する方法Pythonでオブジェクトを埋める方法は?

FILES = (
     ('hello3.txt', True), 

    ) 

を?

私が試した:FILES.append("name.txt")

を、私はこの例を使用して、ディレクトリからすべてのファイルをタプルに追加する必要があります。https://groups.google.com/forum/#!topic/google-appengine/QOMzUhZ2b3Q

+10

タプルは不変で、リスト –

+1

使用 '= [ '1'、真]'して、 'a.append( '何か')' – sashoalm

+0

が、私はこの例を使用してに必要な 'files'をすることを検討ディレクトリ(https://groups.google.com/forum/#!topic/google-appengine/QOMzUhZ2b3Q – Griboedov

答えて

1

'tuple' object does not support item assignment. Moses Koledoyeの言うとおり、タプルオブジェクトは不変です。

あなたは、FILESに 試み追加または削除する場合:あなたの代わりにtuplelistを使用し、ファイルの名前またはT/Fの値を変更したい場合は

FILES = [('hello3.txt', True)] 
FILES.append(('new.txt', False)) 

を。

FILES = [['hello3.txt', True]] 
FILES.append(['new.txt', False]) 
FILES[0][1] = False 

しかし、私はこれらのコードがとても醜いと思います。私は、リストを使用する代わりにクラスを作成することを好む。

class File: 
    __slots__ = 'name', 'flag' 
    def __init__(self, name, flag): 
     self.name = name 
     self.flag = flag 
FILES = [File('hello3.txt', True)] 
FILES.append(File('new.txt', False)) 
FILES[0].flag = False 

ファイルに2つの属性(名前とフラグ)しかない場合は、簡単な方法もあります。

FILES = {'hello3.txt': True} 
FILES['new.txt'] = False 
+0

ループ更新の質問 – Griboedov

+0

@Griboedov特定のディレクトリのすべてのファイルを取得したいのですか? – EmOwen

2

あなたがここにタプルを使用しています。不変であり、作成後に何かを追加することはできません。

ここで別のデータ構造を使用するのが最善の方法です。リスト:リスト!あなたは、「辞書」について読むより困難とパフォーマンスの構造を必要とする場合 https://docs.python.org/3/tutorial/datastructures.html

FILES = ['hello3.txt', True] 

今アペンド機能は、その仕事、ここでは異なるデータ構造について

FILES.append("name.txt") 

より多くを行うことができます。

+0

)からすべてのファイルをタプルするように追加してください。正しいのですか? 'FILES = [] FILES.append((filename、True))' – Griboedov

+0

ループ更新の質問 – Griboedov

関連する問題