gpt4 book ai didi

Python字典: Key with two values possible?

转载 作者:行者123 更新时间:2023-12-01 09:25:02 25 4
gpt4 key购买 nike

对于测试程序,我正在抓取一个网页。我想抓取与各个城市关联的特定 ID 的所有事件。

例如,我的初始代码:

RegionIDArray = {522: "London", 4745: "London", 2718: "London", 3487: "Tokio"}

我现在想知道是否可以总结与例如相关的所有 ID(值)。伦敦一键进入:

RegionIDArray = {522, 4745, 2718: "London}

如果我尝试这样做,我不会得到任何结果

到目前为止我的完整代码

RegionIDArray = {522: "London", 4745: "London", 2718: "London", 3487: "Tokio"}

for reg in RegionIDArray:
r = requests.get("https://www.getyourguide.de/-l" +str(reg) +"/")
soup = BeautifulSoup(r.content, "lxml")

g_data = soup.find_all("span", {"class": "intro-title"})
for item in g_data:
POI_final = (str(item.text))

end_final = ("POI: " + POI_final)
if end_final not in already_printed:
print(end_final)
already_printed.add(end_final)

有什么聪明的方法吗?感谢任何反馈。

最佳答案

您可以通过两步完成此操作:

  1. 创建一个字典,将位置映射到 ID 列表。
  2. 反转此字典,注意确保您的 key 可散列。

第一步通过collections.defaultdict进行优化处理。

对于第二步,您可以使用tuplefrozenset。我选择后者,因为尚不清楚排序是否相关。

from collections import defaultdict

RegionIDArray = {522: "London", 4745: "London", 2718: "London", 3487: "Tokio"}

d = defaultdict(list)

for k, v in RegionIDArray.items():
d[v].append(k)

res = {frozenset(v): k for k, v in d.items()}

print(res)

{frozenset({522, 2718, 4745}): 'London',
frozenset({3487}): 'Tokio'}

关于Python字典: Key with two values possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50496549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com