更新python中的配对列表

时间:2017-07-31 12:16:35

标签: python python-2.7 python-3.x

我正在尝试将包含对值的列表更新为:

>>> list['n1'] = 16
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers or slices, not str

现在我想用n1更新值为16.所以我试着这样做:

sample()

使用键值类型的功能访问列表的方法是什么?

5 个答案:

答案 0 :(得分:3)

将其转换为dict

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

另外,不建议使用list作为变量名,因为它是python中built-in function的名称。

答案 1 :(得分: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)]

答案 2 :(得分:1)

使用dict

  
    
      

dict(mapping) - &gt;从映射对象初始化的新字典           (键,值)对

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

注意**不要使用list作为变量名称,它将覆盖内置函数list

答案 3 :(得分:1)

您可以按位置访问列表中的项目,而不是按其值访问。

如果经常进行此类更新,您可能需要使用 dictionary(滚动到5.5)。 字典以键值格式存储数据,以便您可以通过键访问和更新值。

您可以创建一个:

some_dict = dict()

然后,添加您要存储的键值对,如下所示:

some_dict['n1'] = 1

然后,如果您想更新'n1'存储的值,只需以类似的方式使用前一个语句:

some_dict['n1'] = "new_value"

答案 4 :(得分:1)

您无法将列表映射到键值对。列表只能被切片。

您很幸运,您的列表中包含键,值对作为元组。

您可以使用dict(映射)转换相同的内容,而其他人已经回答。

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