python - 从 Python 中的键列表和值的多列表创建字典
问题描述
我有一个密钥列表:
list_date = ["MON", "TUE", "WED", "THU","FRI"]
我有许多由以下代码创建的值列表:
list_value = list()
for i in list(range(5, 70, 14)):
list_value.append(list(range(i, i+10, 3)))
规则创建:
第一个数字是 5,包含 4 个项目的列表的值等于 x = x + 3,依此类推 [5, 8, 11,1 4]
第二个列表的第一个数字等于:x = 5 + 14,并且里面的值仍然如上 x = x +3
[[5, 8, 11, 14], [19, 22, 25, 28], [33, 36, 39, 42], [47, 50, 53, 56], [61, 64, 67, 70] ]
我希望获得这样的字典:
collections = {"MON":[5, 8, 11, 14], "TUE" :[19, 22, 25, 28], "WED":[33, 36, 39, 42], "THU":[47, 50, 53, 56], "FRI":[61, 64, 67, 70]}
然后,我使用了:
zip_iterator = zip(list_date, list_value)
collections = dict(zip_iterator)
得到我预期的结果。
我尝试了另一种方式,比如使用lambda
函数
for i in list(range(5, 70, 14)):
list_value.append(list(range(i,i+10,3)))
couple_start_end[lambda x: x in list_date] = list(range(i, i + 10, 3))
输出是:
{<function <lambda> at 0x000001BF7F0711F0>: [5, 8, 11, 14], <function <lambda> at 0x000001BF7F071310>: [19, 22, 25, 28], <function <lambda> at 0x000001BF7F071280>: [33, 36, 39, 42], <function <lambda> at 0x000001BF7F0710D0>: [47, 50, 53, 56], <function <lambda> at 0x000001BF7F0890D0>: [61, 64, 67, 70]}
我想问有没有更好的解决方案来创建具有上述规则的值列表?collections
并在不使用该方法的情况下创建字典zip
?
非常感谢您的关注和参与。
解决方案
当然,您可以使用enumerate
,但我不会说它比zip
基于解决方案的解决方案更好或更差:
collections = {}
for idx, key in enumerate(list_keys):
collections[key] = list_value[idx]
print(collections)
输出:
{'MON': [5, 8, 11, 14], 'TUE': [19, 22, 25, 28], 'WED': [33, 36, 39, 42], 'THU': [47, 50, 53, 56], 'FRI': [61, 64, 67, 70]}
此外,您不需要单独创建值列表,您可以随时创建字典:
list_keys = ["MON", "TUE", "WED", "THU","FRI"]
collections = {}
for idx, start in enumerate(range(5, 70, 14)):
collections[list_keys[idx]] = [i for i in range(start, start+10, 3)]
print(collections)
推荐阅读
- browser - 为隐私浏览设置不同的搜索引擎
- javascript - 使用反应创建带有用户位置的谷歌地图
- vbscript - HP UFT/QTP 14.00,导入 CSV 并维护数据表中的值
- python - pipenv shell中的ModuleNotFoundError?
- javascript - Javascript 将 cookie 值添加为对象,与添加它的 PHP 不同
- mobile - 无效的构造函数名称和未定义的类
- r - R中的Bray-Curtis成对分析
- bash - 如何检查变量是否等于(可能)最后一个字母之外的其他变量?
- r - 通过在 R 中设置标准来查找输出?
- visual-studio-code - VS Code 扩展隐藏 console.log 命令?