我有一个清单:
Online = [['Robot1', '23.9', 'None', '0'], ['Robot2', '25.9', 'None', '0']]
如果收到不同的值,我想替换子列表:
NewSublist1 = ['Robot1', '30.9', 'Sending', '440']
NewSublist2 = ['Robot2', '50']
我想要:
Online = [['Robot1', '30.9', 'Sending', '440'], ['Robot2', '50']]
子列表元素的数量可能会更改。唯一相同的是Robot id,所以我想进行搜索,看看Robot id是否在联机列表中,并用新的替换子列表。你知道吗
您可以创建一个字典,将新子列表中的
robot
id映射到实际的新子列表,然后在该dict中查找现有的robot
id并相应地替换。你知道吗这将在列表中的每个元素上循环一次,使其复杂性为O(n),n是
Online
列表中的元素数。相反,如果您将Online
也映射robot
id到子列表的字典,您可以将其归结为O(k),k是新子列表的数目。你知道吗如果您还想将元素从
NewSublists
添加到Online
如果这些元素还没有出现,那么您应该明确地将Online
转换为dict
;然后您可以简单地update
dict并获得values
。Ir顺序很重要,请确保使用collections.OrderedDict
或python3.7。你知道吗相关问题 更多 >
编程相关推荐