这是一本很棒的入门书,但没有满足我的需要: Combining two sorted lists in Python
我有两个 Python 列表,每个列表都是日期时间、值对:
list_a = [['1241000884000', 3], ['1241004212000', 4], ['1241006473000', 11]]
和:
list_x = [['1241000884000', 16], ['1241000992000', 16], ['1241001121000', 17], ['1241001545000', 19], ['1241004212000', 20], ['1241006473000', 22]]
- 实际上有许多 list_a 列表具有不同的键/值。
- 所有 list_a 日期时间都在 list_x 中。
- 我想制作一个列表 list_c,对应于每个 list_a,每个 list_a 都有来自 list_x 和 value_a/value_x 的每个日期时间。
奖励:
在我的真实程序中,list_a 实际上是字典中的一个列表,就像这样。将答案提升到字典级别将是:
dict = {object_a: [['1241000884000', 3], ['1241004212000', 4], ['1241006473000', 11]], object_b: [['1241004212000', 2]]}
不过我可以弄清楚那部分。
请您参考如下方法:
这里有一些代码可以完成您的要求。您可以直接将您的配对列表变成字典。然后可以通过将 key 集相交来找到共享的 key 。最后,在给定一组共享 key 的情况下,构建结果字典很容易。
dict_a = dict(list_a)
dict_x = dict(list_x)
shared_keys = set(dict_a).intersection(set(dict_x))
result = dict((k, (dict_a[k], dict_x[k])) for k in shared_keys)
