如何用Python通过循环从多个数组生成目标格式的字典
如何将多个数组转换为指定格式的字典?
你当前用dict.fromkeys(a, b)的写法完全不符合需求逻辑,因为dict.fromkeys的作用是把第一个参数的元素作为键,第二个参数作为所有键的统一默认值,所以你得到的结果是{'hello': ['day', 'night'], 'hi': ['day', 'night']},和目标结构完全不匹配。
正确实现方法
方式一:循环遍历配对的键名与数组
先把要处理的数组和对应的键名(字符串形式)配对,再通过循环生成目标字典:
a = ["hello", "hi"] b = ["day", "night"] # 键名和对应数组的配对列表 target_pairs = [("a", a), ("b", b)] result_dict = {} for key_name, arr in target_pairs: # 将数组元素用逗号拼接成字符串,作为对应键的值 result_dict[key_name] = ", ".join(arr) print(result_dict) # 输出: {'a': 'hello, hi', 'b': 'day, night'}
方式二:用字典推导式简化代码
如果想更简洁,可以直接用字典推导式完成:
a = ["hello", "hi"] b = ["day", "night"] result_dict = {key: ", ".join(arr) for key, arr in [("a", a), ("b", b)]} print(result_dict)
关键说明
Python无法直接获取变量的名称字符串(比如从变量a得到字符串"a"),所以必须手动将键名和对应的数组关联起来,再通过", ".join()方法把数组元素拼接成你需要的字符串格式。
内容的提问来源于stack exchange,提问作者abobus_f1
相关产品推荐
相关产品推荐

