我有一个二维列表,其中内部维度总是有 3 个值(前 2 个值是字符串,最后一个是整数),外部维度只包含这些值,如下所示:
my_list=[["a","b",10],["c","d",12],["e","f",64]]
我有一个函数试图将一个新的 3 值列表附加到 my_list。如果该列表的第一个和第二个值与当前在 my_list 中的列表的第一个和第二个值匹配,我想将它们的最后一个(整数)值加在一起。
例如,尝试将 ["a","b",3] 添加到 my_list 只会像这样更改 my_list:
my_list=[["a","b",13],["c","d",12],["e","f",64]]
但是,如果尝试将 ["b","a",3] 添加到 my_list 中,则只会像这样更改 my_list:
my_list=[["a","b",10],["c","d",12],["e","f",64], ["b", "a",3]]
这是我的代码:
my_list=[["a","b",10],["c","d",12],["e","f",64]]
a=["a","b",3]
for x in my_list:
if x[:2]==a[:2]:
x[3]=x[3]+a[3]
我收到以下错误:
Traceback (most recent call last):
File "./test", line 9, in <module>
x[3]=x[3]+a[3]
IndexError: list index out of range
请您参考如下方法:
Python 中的列表索引从零开始,因此您的三元素列表由0、1 和2,而不是代码预期的 1、2 和 3。此外,以 ("a","b") 作为键的字典可能是更好的数据结构。
