如何将两个列表添加到一个新列表中,而不在Python中合并它们?

2024-09-25 02:39:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个dict,通过它们我创建了两个不同的列表,我想要的是将它们附加到一个列表中,而不合并它们,以便在迭代时对每个列表执行操作

  • 每个列表都包含两个插槽,我需要使用它们来运行命令,以使led亮起和熄灭
  • 我需要最终输出如下: {'first':[slot1,slot2],'second':[slot1,slot2]}或者干脆{[[slot1,slot2],[slot1,slot2]}
first_dict = {'address1': [1], 'address1': [2]}
second_dict = {'address2': [3], 'address2': [4]}
outlet_list1 = []
for x, slot in first_dict.items():
    outlet_list1.extend(slot)
outlet_list2 = []
for x, slot in second_dict.items():
    outlet_list2.extend(slot)

是否有人能帮助优化并为上述问题提供解决方案


Tags: in列表foritemsdictfirstslotsecond
2条回答

根据您上面提到的要求,您可以简单地编写列表,为单个列表整平一行:

first_dict = {'address1': [1], 'address2': [2]}
second_dict = {'address1': [3], 'address2': [4]}

outlet_list1 = [item for sublist in first_dict.values() for item in sublist]
outlet_list2 = [item for sublist in second_dict.values() for item in sublist]

result=[outlet_list1, outlet_list2]

print(result)

这给了你:

[[1, 2], [3, 4]]

一个班轮基本上意味着:

for sublist in first_dict.values():
    for item in sublist:
        outlet_list1.append(item)

希望这能正确回答你的问题

更有组织的解决方案

如果您有一个DICT列表,您可以按如下方式进行操作:

first_dict = {'address1': [1], 'address2': [2]}
second_dict = {'address1': [3], 'address2': [4]}
list_of_dict = [first_dict, second_dict]

result = []

for dict_item in list_of_dict:
    result.append([item for sublist in dict_item.values() for item in sublist])

print(result)

你也会得到同样的结果

first_dict = {'1':1, '2':2}
second_dict = {'1':1, '2':2}
outlet_list1 = []
outlet_dict = {}

outlet_list1.append(first_dict)
outlet_list1.append(second_dict)
print(outlet_list1)

########## OR ##########

outlet_dict['First'] = first_dict
outlet_dict['Second'] = second_dict
print(outlet_dict)

相关问题 更多 >