2017-07-31 5 views
0

でペアリングリストを更新:今、私は16にN1で値を更新したいはと私はペアの値からなるリストを更新しようとしているのpython

list = [('n1',1),('n2',2),('n3',3),('n4',4),('n5',5)] 

だから私は、tは次のように作る試みた:

キー値の種類の機能を使用してリストにアクセスするにはどうすればよいですか?

+3

あなたは 'dict'を探しています。そうでない場合は、一致する項目に基づいてループオーバーして更新します。 –

+1

しかし、私はリストにアクセスしたいだけです –

+0

私は 'dict'で試しましたが、私の残りのモジュールは' list'と 'dict'ではなくその値を必要とします –

答えて

2

あなたは、リストの内包表記を使用することができます。

>>> lst = [('n1', 1), ('n2', 2), ('n3', 3), ('n4', 4), ('n5', 5)] 
>>> lst = [('n1', 16) if 'n1' in item else item for item in lst] 
>>> lst 
[('n1', 16), ('n2', 2), ('n3', 3), ('n4', 4), ('n5', 5)] 
+0

どうしますか?以前の理解度はかなり良かったと思います。 –

+0

@Jaffer:インタラクティブシェルデモの形で同じです。 –

+0

前の説明を追加してください。 –

1

使用dict

dictの(マッピング) - マッピングオブジェクトの (キー、値)から初期化>新しい辞書ペア

d = dict(list) 
d['n1'] = 16 

注意**は使用しないでください変数名としてを指定すると、組み込み関数listが上書きされます。

3

dict

myList = [('n1',1),('n2',2),('n3',3),('n4',4),('n5',5)] 
myDict = dict(myList) 
myDict['n1'] = 16 

に変換し、それはPythonでbuilt-in functionの名前だからまた、変数名としてlist使用することをお勧めしません。

1

あなたはその場所によってではなく、その値によって、リスト内のアイテムにアクセスすることができます。更新のこの種が頻繁に行われている場合

は、おそらくdictionary(5.5までスクロール)を使用します。 ディクショナリは、キーで値にアクセスして値を更新できるように、キー値形式でデータを格納しています。

次のようなものを作成することができます。

some_dict = dict()

を次に、追加するには、保存ので、同じようにしたいキーと値のペアを:

some_dict['n1'] = 1

次に、あなたの場合'n1'によって保存された値を更新したいのですが、同様の方法で前のステートメントを使用してください:

some_dict['n1'] = "new_value"

1

リストをキー値のペアにマップすることはできません。リストはスライスすることしかできません。

タプルとしてキー、値のペアを持つリストがあることは幸運です。

dict(マッピング)を使用して他のものと同じように変換することができます。

my_list = [('n1',1),('n2',2),('n3',3),('n4',4),('n5',5)] 
my_dict = dict(myList) 
my_dict ['n1'] = 16 
関連する問題