0

我正在编写一个程序来快速找到电线尺寸,所以我不必一直参考图表,但有一个小问题。

我有一本看起来像这样的字典:

#From Table 310.16 - Article 310 - 
#75 degree rated Copper RHW,THHW,THWN,XHHW,USE,ZW - 2008 NEC
wireAmpacityTable = [
    (25, '#12'),
    (35, '#10'),
    (50, '#8'),
    (65, '#6'),
    (85, '#4'),
    (100, '#3'),
    (115, '#2'),
    (130, '#1'),
    (150, '1/0'),
    (175, '2/0'),
    (200, '3/0'),
    (230, '4/0'),
    (255, '250MCM'),
    (285, '300MCM'),
    (310, '350MCM'),
    (335, '400MCM'),
    (380, '500MCM'),
    (420, '600MCM'),
]

我成功地使用了 bisect 函数来获得正确的电线尺寸。

我的问题是如何仅访问电线尺寸值。例如,如果我输入 15 安培,我希望它只返回电线尺寸 - #12。目前它返回(25, '#12')

这是我为查找值而编写的代码

import bisect
# sort list 
wireAmpacityTable.sort()

def wireLookup(amps):
    pos1 = bisect.bisect_right(wireAmpacityTable, (amps,))
    print "ampacity"
    print wireAmpacityTable[pos1]

amp = int(raw_input("How many Amps:"))
print wireLookup(amp)
4

2 回答 2

1

目前wireLookup没有返回任何东西。首先,您必须返回一些东西(而不仅仅是打印它),其次您只需要元组的第二个条目。

return wireAmpacityTable[pos1][1]

顺便说一句,您可能希望根据PEP-8命名您的函数和变量。

于 2013-07-16T21:05:29.470 回答
0

只需索引元组,电线的规格在位置 1 所以

print wireAmpicity[posl][1]

只会打印出线规。

于 2013-07-16T21:09:07.090 回答