1

这是示例字典一

one = {'a': 1,'b': 3}

第二个字典是

second = {'x': 45,'y': 45}

这是关键容器(类型list

key_con = one.keys()
key_con = key_con.extend(second.keys())

一切都很好。但我尝试像这样缩短代码

key_con = one.keys().extend(second.keys())

现在,key_conNoneType 想在一行代码中制作这个关键容器。如何实现呢?

4

2 回答 2

5
key_con = one.keys() + second.keys()

extend就地修改列表并且不返回任何内容。你确定你的第一个片段有效吗?

于 2013-01-18T12:31:18.823 回答
1

虽然Pavel Anossov 的另一个答案回答了您明确提出的问题,但我仍然认为这不是解决手头问题的最佳方法。字典是无序的,并且不能有重复的键,所以使用列表来存储键本质上是一种误导和一个坏主意。

相反,将这些数据存储在一个集合中是一个更好的主意 - 集合没有顺序,并且不能包含重复项,因此更有效地填补了这个角色。

在 Python 3.x 中,dict.keys()提供了一个类似集合的字典视图,因此最好通过以下方式完成:

key_con = one.keys() | two.keys()

我们使用|(二元或)运算符,它在集合和类似集合的对象上表示联合(一个集合另一个集合中的所有元素)。

在 2.7 中,可以通过以下方式获得相同的行为dict.viewkeys()

key_con = one.viewkeys() | two.viewkeys()

在旧版本中,我们可以使用dict.iterkeys()with set()

key_con = set(one.iterkeys()) | set(two.iterkeys())
于 2013-01-18T12:58:27.420 回答