Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中更新成对列表_Python_Python 2.7_Python 3.x - Fatal编程技术网

在python中更新成对列表

在python中更新成对列表,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我正在尝试更新由成对值组成的列表,如下所示: list = [('n1',1),('n2',2),('n3',3),('n4',4),('n5',5)] 现在我想用n1到16更新这个值。所以我试着这样做: >>> list['n1'] = 16 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: list indices must be

我正在尝试更新由成对值组成的列表,如下所示:

list = [('n1',1),('n2',2),('n3',3),('n4',4),('n5',5)]
现在我想用n1到16更新这个值。所以我试着这样做:

>>> 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
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:列表索引必须是整数或片,而不是str
使用键值类功能访问列表的方法是什么?

使用
dict

dict(mapping)->从映射对象的 (键、值)对


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

将其转换为
dict

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

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

您可以使用列表:

>>> 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)]

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

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

您可以这样创建一个:

some\u dict=dict()

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

some_dict['n1']=1

然后,如果要更新“n1”存储的值,只需以类似的方式使用前面的语句:


some_dict['n1']=“new_value”

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

幸运的是,您有一个包含键、值对作为元组的列表

您可以使用dict(映射)将其转换为其他已回答的格式

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

您正在查找
dict
,否则将循环并根据匹配的项进行更新。但我只想访问列表我尝试了
dict
,但我的rest模块需要该值作为
list
,而不是
dict
发生了什么?我想之前的理解很好。@Jaffer:也一样,只是以一个交互式shell演示的形式。你能添加之前的理解吗?我不知道索引
my_list = [('n1',1),('n2',2),('n3',3),('n4',4),('n5',5)]
my_dict = dict(myList)
my_dict ['n1'] = 16