【发布时间】:2011-02-05 21:25:46
【问题描述】:
我有一个由元组组成的列表,如下所示:
(2809.3994479562093, 1032.5989696312365, 0.0), {'level': '2', 'id': '1'})
对于字典中的级别键有一组不同的值(增加,但不总是整数,即 1、2、3、3B、4A、5、5A、6、7),id 逐渐增加并且仅包含整数。
我要找出的是元组第一个元素中前两个值的值,即浮点 2809.399... 和 1032.5989... 在级别为 +/- 1 的情况下和我现在的不同。 也就是说,level 2 id 1 应该在level 1 和level 3 上寻找id 1。
我想出的是以下几点:
for x in xrange(len(net.lifts)):
if net.lifts[x][1]["level"] == "2":
for y in xrange(len(net.lifts)):
if (net.lifts[y][1]["level"] == "1" or net.lifts[y][1]["level"] == "3") and net.lifts[y][1]["id"] == net.lifts[x][1]["id"]:
print "edge:" + str(net.lifts[x][0][:2]) + str(net.lifts[y][0][:2])
它有效。但是,它需要我为每个案例定义长 if 语句。 有没有更有效的方法(算法)来抽象它而不必创建 7 个 if 循环(每个级别一个)?
【问题讨论】: