如何在成员列表的内容发生更改时更新复合列表?

2024-06-23 19:45:41 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有:

friendlies = []
enemies = []
everyone = [friendlies + enemies]

我说:

friendlies.append("something")

友谊赛现在包括:

["something"]

什么是pythonic的方法使得everyone也能更新?因此,如果我以上述方式更新friendlieseveryone将包含:

["something"] 

什么?你知道吗


Tags: 方法方式pythonicsomethingappendeveryonefriendliesenemies
2条回答

在复合列表中维护对friendliesenemies的引用:

everyone = [friendlies, enemies]
#                     ^

compisite列表的索引0和1将分别引用friendliesenemies。你知道吗

friendlies + enemies创建一个新的列表,它不是您想要的。你知道吗


一种更具可读性的方法是将everyone编成字典:

everyone = {'friendlies': friendlies, 'enemies': enemies}

可用于:

>>> friendlies = []
>>> enemies = []
>>> everyone = {'friendlies': friendlies, 'enemies': enemies}
>>> friendlies.append("something")
>>> everyone['friendlies']
['something']

如果你现在求和,你就失去了参考。创建列表列表以维护引用

这样做的方式很老套:

friendlies = []
enemies = []

everyone = [friendlies,enemies]  # not sum, sublists
enemies.append("something")
print(sum(everyone,[]))   # sum sublists to a new list

相关问题 更多 >

    热门问题