我有两个相关的问题。你知道吗
首先,我有一些信息,例如:
(732, 2378) (233, 52172) 23 ['Mona'] 7
有两个元组,两个整数和一个列表。让我们将这五项索引为x[0]:x[4]
我的第一个问题是,我可以使用什么样的数据结构来存储这些不同的项(对不起,我是python新手)。你知道吗
第二个问题是基于第一个问题。假设我有这样一个结构(现在称之为列表),我的主要目标是:
在第一个和第二个“清单”中,我有:
x[0][1] x[1][1] x[3]
V V V
(732, 2378) (233, 23) 23 ['jamie'] 7
(732, 2378) (233, 43) 24 ['jamie'] 3
(732, 2378) (233, 56) 23 ['jamie'] 2
(3434, 2378) (45, 23) 23 ['hello'] 1
(3445, 2378) (76, 43) 23 ['hello'] 2
(7834, 2378) (90, 56) 24 ['hello'] 5
我的目标是遍历这两个结构,首先在x[1][1]和x[2]上进行匹配,然后,对于每个匹配记录,找到相应的x[4],使两个列表中所有匹配项的值之和最小化。返回两个结构中的匹配项。你知道吗
在这种情况下,它应该返回: (3445,2378)(76,43)23[“你好”]2 和(732,2378)(233,43)24[“杰米”]3 因为这个匹配的总和,5,是最小值。你知道吗
我知道这有点牵扯,但我很感激任何指向正确方向的指点。谢谢!你知道吗
看起来你的问题中的数据结构已经很合理了,把它们放在列表中就行了。如果使用named tuples,搜索代码的可读性会比其他代码高。有关搜索/匹配代码,请参见operator.attrgetter和operator.itemgetter。你知道吗
例如,这里有一个方便的表单来排列数据(根据数据实际代表的内容,您可以选择更好的名称):
List comprehensions可用于匹配/筛选步骤:
我不清楚在最小化和的步骤中你想做什么,但希望这个答案足够让你更接近期望的结果:-)
相关问题 更多 >
编程相关推荐