📜  Python – 将键分组到值列表(1)

📅  最后修改于: 2023-12-03 15:34:08.628000             🧑  作者: Mango

Python - 将键分组到值列表

在Python中,我们可以使用字典(dictionary)数据结构来存储键值对。有时我们需要将键按照某种规则分组后,将对应的值存储到列表中。

下面是一个示例字典,其中包含了一些城市和它们所属的国家。

cities = {
    "New York": "USA",
    "London": "UK",
    "Paris": "France",
    "Beijing": "China",
    "Tokyo": "Japan",
    "Sydney": "Australia",
    "Toronto": "Canada",
    "Berlin": "Germany"
}

现在我们想要将这些城市按照它们所属的国家进行分组,并将对应的城市存储到列表中。可以使用Python的defaultdict来实现这样的功能。

from collections import defaultdict

cities_by_country = defaultdict(list)
for city, country in cities.items():
    cities_by_country[country].append(city)

这里我们将一个空列表作为默认值传递给defaultdict。在循环中,我们首先使用items()方法遍历字典的键值对,然后使用defaultdict的键访问列表,并向其中添加城市名。

现在让我们打印输出结果并看看将键分组到值列表的效果。

for country, cities in cities_by_country.items():
    print(f"{country}: {cities}")

输出结果如下:

USA: ['New York']
UK: ['London']
France: ['Paris']
China: ['Beijing']
Japan: ['Tokyo']
Australia: ['Sydney']
Canada: ['Toronto']
Germany: ['Berlin']

可以看到,我们成功地将城市按照它们所属的国家进行了分组。

总结

使用defaultdict可以轻松地将键分组到值列表。上面的示例只是其中的一种简单方式,实际上可以根据实际需求来进行更复杂的分组操作。