在python中合并

2024-03-29 10:49:39 发布

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

我有以下4个数组(分为2组),我想按keys数组的升序合并。你知道吗

我也可以使用字典作为结构,如果它更容易。你知道吗

python是否有任何命令或其他东西可以快速实现这一点?你知道吗

敬礼 锰

# group 1
[7, 2, 3,  5]  #keys
[10,11,12,26]  #values 

[0,   4]   #keys
[20,  33]  #values 

# I would like to have
[ 0, 2, 3, 4, 5, 7 ] # ordered keys
[20, 11,12,33,26,33] # associated values

Tags: to命令字典havegroup数组keys结构
3条回答

我建议您使用字典,然后您可以使用^{}用一个字典中的键和值来更新另一个字典。你知道吗

请注意,Python中的字典没有排序。相反,当您需要迭代时,您可以获取它们的键,对它们进行排序,然后迭代这些键以获取相应的值。你知道吗

如果您使用的是python2.7、3.1或更高版本,那么您可能需要使用一个类^{}。你知道吗

如果您的密钥不能保证是唯一的,您不应该使用字典-重复的密钥将被覆盖。你知道吗

此解决方案适用于重复密钥:

keys_a = [7, 2, 3,  5]
values_a = [10,11,12,26]
keys_b = [0,   4]
values_b = [20,  33]

combined = zip(keys_a+keys_b, values_a+values_b)
combined.sort()

keys, values = zip(*combined)

(编辑使用@tgray建议的改进)

如果您的密钥保证是唯一的,请结合字典查看zip。你知道吗

你只要做:

>>> x = [7, 2, 3,  5]  #keys
>>> y = [10,11,12,26]  #values 

>>> dict(zip(x,y))
{2: 11, 3: 12, 5: 26, 7: 10}

相关问题 更多 >