我有两个列表需要保持同步。下面的示例是完整应用程序的一个非常精简的版本。你知道吗
list_1
包含数据,list_2
包含索引值。你知道吗
list_1 = ['item1', 'item2', 'item3', 'item4']
list_2 = [0, 1, 2, 3]
现在我想.insert()
转换成list_1
-在任何索引处-并保持列表2同步。这意味着如果我在索引1处插入一个元素,它看起来像这样:
list_1 = ['item1', 'new_item!', 'item2', 'item3', 'item4']
我知道这个例子中的索引是1
,所以我可以在list_2
的适当位置插入它
list_2 = [0, 1, 1, 2, 3]
# ^----- Newly inserted index
我的问题是,如何有效地更新插入值之后的每个元素,使其增量为1?你知道吗
我意识到这对于本例来说是非常基本和不必要的,但是对于完整的应用程序,这两个列表是必需的,索引的list_2
用于控制PyQt UI。在这一点上,更改这个两个列表的解决方案将非常耗时。你知道吗
这闻起来像是XY problem,但无论如何。。。你知道吗
你可以这样变异
list_2
:输出
因为我们使用切片分配,所以我们改变了原始的
list_2
对象,而不是替换它,所以如果任何其他对象引用了list_2
,它们就会看到更改。你知道吗相关问题 更多 >
编程相关推荐