我有一个列表列表,列表中的每个列表包含5个项目,如何更改列表中项目的值?我试过以下方法:
for [itemnumber, ctype, x, y, delay] in execlist:
if itemnumber == mynumber:
ctype = myctype
x = myx
y = myy
delay = mydelay
最初我有一个元组列表,但我意识到我无法更改元组中的值,所以我切换到列表,但我仍然无法更改任何值。如果我从for循环中打印ctype、x、y、delay、myctype、myx、myy或mydelay,则似乎一切正常,但如果我在之后打印execlist,则会看到没有任何更改。
您可以使用
enumerate()
:如果
execlist
最多只包含一个子列表,而该子列表的第一项可以等于mynumber
,则可以删除#
;否则,将无用地循环遍历该列表的其余部分。如果
itemnumbers
事实上是唯一的,那么最好使用字典,或者至少使用OrderedDict
,这取决于您打算对数据执行的其他操作。问题是,您正在创建列表的副本,然后修改该副本。您要做的是修改原始列表。请改为:
您需要通过索引进行分配。假设你有一个列表,里面的列表都有5个你描述过的项目。如果要遍历它们并更改每个内部列表中第二个项的值,可以执行以下操作:
相关问题 更多 >
编程相关推荐