2012-05-14 40 views
0

這是我第二次試圖提出這個問題,希望這次能夠更簡潔一些。試圖從列表中的元素創建變量

我有一個板球比分計算器的擊球手名單,我想起牀並且跑步。 例如。

batsmen = ['S Ganguly', 'M Brown', 'R Uthappa', 'A Majumdar', 'S Smith', 'A Mathews', 'M Manhas', 'W Parnell', 'B Kumar', 'M Kartik', 'A Nehra'] 

在這個列表中,我有一個for循環,目前沒有列表,它只是用來計算2個團隊並找到一個贏家。

for overs in range(overlimit): 
     for balls in range(6): 
      balls_team = balls_team+ 1 
      runtotal_team = input('Enter runs: ') 

我試圖利用該列表的計分以及爲每個擊球手拿着價值的手段。

我希望你們中的一個人可以幫忙。我假設可以使用while循環,但我無法弄清楚如何實現列表。

回答

1

你想使用dict,那麼batsmen的名字可以成爲字典的鍵,並且他們的跑步/評分值。

4

Dictionary?

batsmenDict = { 
'A Majumdar': 0, 
'A Mathews': 0, 
'A Nehra': 0, 
'B Kumar': 0, 
'M Brown': 0, 
'M Kartik': 0, 
'M Manhas': 0, 
'R Uthappa': 0, 
'S Ganguly': 0, 
'S Smith': 0, 
'W Parnell': 0} 

batsmenDict['M Manhas'] += 1 

甚至還有被稱爲defaultdict一個特殊的集合類型,它可以讓你做的默認值0爲每個玩家:

from collections import defaultdict 

batsmenDict = defaultdict(int) 
print batsmenDict['R Uthappa'] 
# 0 
batsmenDict['R Uthappa'] +=1 
print batsmenDict['R Uthappa'] 
# 1 
+0

+1 。我只想提一提另一種選擇'dict.setdefault(key,default)' – ch3ka

+0

@ ch3ka:謝謝。還有就是這種方法,儘管你必須爲每個鍵做更多的手工工作。 – jdi

0

使用defaultdict字典

>>> batsmen = [ ... ] 
>>> d = dict.fromkeys(batsmen) 
>>> d['A Mathews'] = 14 
>>> d['A Mathews'] 
14 
+2

這給了你一個沒有'None'值的初始字典。 'dict.fromkeys(batsmen,0)'可能更有用,因爲初始值都是0 –