有没有更好的方法将列表中的条目添加到字典中?

Is there a better way to add entries from lists to a dictionary?

我在学习Python的时候遇到了这个任务:

Imagine Python did not have built-in support for sets. Show how we could use dictionaries to represent sets. Write the four set operations | - ^ & for this new representation of sets.

下面你可以看到答案:

First, for the ‘or’ operation, we add entries to the new dictionary from both input lists:

l1 = [1,2,3,4,5]
l2 = [4,5,6,7,8]
def t_or(l1,l2):
    result = {}
    for x in l1: result[x] = 0
    for x in l2: result[x] = 0
    print(result)

所以,我想知道为什么作者要用这种奇怪的方法来添加条目result[x] = 0?有没有更好的方法,也许可以使用 .add.insert 等替代方法?

result[key] = value 是在 Python 字典中分配新对 key:value 的方法。您不必先在字典上创建条目键。例如,如果您来自 Java,则语法如下:

Map<String, String> result = new HashMap<int, int>();
result.put(1, 0);

如您所见,在 Java 上您也没有声明密钥,很多语言都会发生同样的情况,这是因为字典密钥的工作方式。

当你想从字典中检索一个元素时,你必须确保该键已经存在于字典中,否则会抛出异常。

您在Python中想到的.add.insert.append,它用于向列表添加新元素:

my_list = []
my_list.append(0)

所以不,没有更好的方法或不同的方法来在 Python 字典上分配新的 key:value 对。