You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动将y_and_value对应值匹配到算法结果集合x生成变量z?

解决方案

1. 修正现有代码的核心问题

你当前代码里用集合存储赛事和数值会导致顺序混乱——集合是无序的,zip时无法保证赛事和数值的对应关系与示例一致。需要改成有序列表来固定顺序:

# 改成有序列表,确保赛事顺序和示例匹配
y = ['Hokkaido-Nikko', 'Timra-Orebro', 'Vaxjo-Lulea', 'Yokohama-Tohoku']
# 有序数值列表,和赛事一一对应
numbers = [1.36, 1.44, 1.12, 1.23]

2. 自动匹配生成目标变量z

要从生成的赛事-数值字典里筛选出x中存在的赛事,步骤如下:

  • 提取x中的赛事名称(处理x里Yokohama City-Tohoku和y里Yokohama-Tohoku的名称差异)
  • 自动筛选匹配的项,无需手动指定

完整代码:

# 算法最终结果
x = {('Hokkaido-Nikko', 'JAP'), ('Yokohama City-Tohoku', 'JAP')}

# 有序赛事列表
y = ['Hokkaido-Nikko', 'Timra-Orebro', 'Vaxjo-Lulea', 'Yokohama-Tohoku']
# 对应有序数值列表
numbers = [1.36, 1.44, 1.12, 1.23]

# 生成赛事-数值字典(对应y_and_value)
result = {}
for key, value in zip(y, numbers):
    result.setdefault(key, []).append(value)

# 提取x中的赛事名称,处理名称冗余(去掉" City")
x_event_names = {name.replace(" City", "") for name, _ in x}

# 自动筛选生成z
z = [(key, value) for key, value in result.items() if key in x_event_names]

# 输出结果
for item in z:
    print(item)

运行后输出:

('Hokkaido-Nikko', [1.36])
('Yokohama-Tohoku', [1.23])

关键说明

  • 用有序列表存储赛事和数值,避免集合无序导致的对应关系错误
  • 通过集合推导式提取并标准化赛事名称,解决可能的命名差异问题
  • 用列表推导式自动筛选匹配项,完全适配大量数据的循环场景

内容的提问来源于stack exchange,提问作者user20812299

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:05:36