<class 'list'>
的{{1}}方法有助于在insert
中添加预期输出((1,2), (3, 4))
的元素lst
,
lst = [((1,2), (3, 4))]
但lst = []
lst.insert(0, ((1,2), (3, 4)))
lst.insert(1, ((5, 6), (7, 8)))
运算符不会给出相同的结果(+=
)。
lst = [(1, 2), (3, 4)]
lst = []
lst += ((1,2), (3, 4))
运算符内部调用+=
方法。
为什么__iadd__
不会以__iadd__
class <'list'>
方法的方式添加元素?因为在我的合并排序代码中维护索引需要额外的名称 - 值对是一个很大的开销..
答案 0 :(得分:1)
x += y
,其中x
和y
类似于列表,将创建一个新列表,其中y
的内容与x
的内容相连接。
由于您不希望将元组((1,2), (3, 4))
的内容附加到lst
,而是希望将元组添加到列表中,你应该lst.append(((1,2), (3, 4)))
代替。
>>> lst = []
>>> lst.append(((1, 2), (3, 4)))
>>> lst.append(((5, 6), (7, 8)))
>>> lst
[((1, 2), (3, 4)), ((5, 6), (7, 8))]