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

如何根据输入指定的重复次数生成对应键值对字典?

按指定重复次数将keys与values列表组合为字典

问题描述

给定两个列表:

  • keys = ['user1', 'user2', 'usr3', 'usr4', 'usr5', 'usr6']
  • values = ['apple', 'banana', 'white', 'black', 'red', 'red2', 'red3']

需要实现一个功能:根据输入的重复次数,让每个value对应指定数量的key,生成目标字典。例如:

  • 当重复次数为2时,生成:{'user1': 'apple', 'user2': 'apple', 'usr3': 'banana', 'usr4': 'banana', 'usr5':'white', 'usr6': 'white'}
  • 当重复次数为3时,生成:{'user1': 'apple', 'user2': 'apple', 'usr3': 'apple', 'usr4': 'banana', 'usr5':'banana', 'usr6': 'banana'}

解决方案

可以通过以下Python函数实现该功能,逻辑清晰且具备鲁棒性(能处理keys长度不是重复次数整数倍、values数量不足的情况):

def create_key_value_dict(keys, values, repeat_count):
    # 计算需要用到的value数量,避免超出values列表的长度
    required_values = min(len(keys) // repeat_count, len(values))
    # 生成每个value重复指定次数的序列
    extended_values = []
    for val in values[:required_values]:
        extended_values += [val] * repeat_count
    # 截断序列以匹配keys的长度(处理非整数倍的情况)
    extended_values = extended_values[:len(keys)]
    # 配对keys和处理后的values,返回字典
    return dict(zip(keys, extended_values))

# 测试示例
keys = ['user1', 'user2', 'usr3', 'usr4', 'usr5', 'usr6']
values = ['apple', 'banana', 'white', 'black', 'red', 'red2', 'red3']

# 测试重复次数为2的场景
print(create_key_value_dict(keys, values, 2))
# 输出: {'user1': 'apple', 'user2': 'apple', 'usr3': 'banana', 'usr4': 'banana', 'usr5': 'white', 'usr6': 'white'}

# 测试重复次数为3的场景
print(create_key_value_dict(keys, values, 3))
# 输出: {'user1': 'apple', 'user2': 'apple', 'usr3': 'apple', 'usr4': 'banana', 'usr5': 'banana', 'usr6': 'banana'}

代码说明

  1. 计算所需value数量:用min(len(keys)//repeat_count, len(values))确保不会使用超出values列表范围的元素,避免索引错误。
  2. 生成重复value序列:遍历选中的value,每个重复repeat_count次后加入序列。
  3. 匹配keys长度:如果keys的总长度不是repeat_count的整数倍,截断序列以保证和keys长度一致。
  4. 生成字典:通过zip()将keys和处理后的values配对,再转换为字典。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:12:13