返回列表

时间:2017-04-27 23:23:51

标签: python function data-structures

假设有一个列表:

x = [(3, 8), (2, 9), (1, 10), (0, 11)]

每个元组的元素都是唯一的(例如:值3不会出现在x中的任何其他元组中。

我想定义一个函数,该函数返回给定另一个伙伴的一个元组的伙伴。例如:

>>> r = find_partner_of(2); print(r)
9
>>> r = find_partner_of(10); print(r)
1

我的第一次尝试就像dict一样:

x = {3:8, 2:9, 1:10, 0:11, 8:3, 9:2, 10:1, 11:0}

但数据量很大,所以我认为一个简单的函数可能是最好的方法。

感谢您的回答。因此,dict可能比(?):

这样的函数更快
def find_partner(lst, value):
    for tpl in lst:
        if value in tpl:
            if tpl[0] == value:
                return tpl[1]
            else:
                return tpl[0]

2 个答案:

答案 0 :(得分:1)

实际上,字典就是为了这个目的而设计的。首先在" forward"中创建字典。方向,然后添加"向后"

partner = {item[0]: item[1] for item in x}
partner.update( {item[1]: item[0] for item in x} )

现在,您的功能仅仅是一个字典查找。以下是合作伙伴在每个步骤后的显示方式:

{0: 11, 1: 10, 2: 9, 3: 8}
{0: 11, 1: 10, 2: 9, 3: 8, 8: 3, 9: 2, 10: 1, 11: 0}

答案 1 :(得分:1)

尝试使用dict,但如果你真的想要这个功能:

System.out.println("Ending balance:      $ "+(b+sumd-sumw+sumi));