2012-05-14 27 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 –