2013-07-16 29 views
0

我正在編寫一個程序以快速找到線路大小,因此我不必一直參考圖表,但遇到小問題。在Python中,返回特定的元組列表中的特定項目,使用bisect

我有一本字典,看起來像這樣:

#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'), 
] 

我是能夠成功地使用對開功能,讓我正確的電線尺寸。

我的問題是如何訪問電線尺寸值。例如,如果我輸入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) 
+2

這是一個元組列表,而不是一個列表 – inspectorG4dget

+0

固定標題。謝謝 – Bobloblawlawblogs

回答

1

wireLookup沒有返回的那一刻的代碼。首先你必須返回一些東西(而不僅僅是打印它),其次你只需要元組的第二個條目。

return wireAmpacityTable[pos1][1] 

順便說一句,您可能想根據PEP-8來命名您的函數和變量。

+0

這正是我需要的。謝謝!我也將通讀PEP-8並修改我的函數和變量。 – Bobloblawlawblogs

0

只是索引到元組,導線的規格在位置1處,從而

print wireAmpicity[posl][1] 

將打印出剛剛線規。

相關問題