我对python非常陌生,而且我还在学习,我很难把它放在我的数组中:
使用此代码:
要获取事件名称,请执行以下操作:
Flag = True
while Flag:
try:
e = str(input("Enter Event names [Type XXX to stop]: "))
if e == 'XXX' or e == 'xxx':
Flag = False
else:
event.append(e)
except ValueError:
print("Please enter a word, Thanks")
print()要弄到房子的名字:
Flag = True
while Flag:
try:
h = str(input("Eneter House names [Type XXX to stop]: "))
if h == 'XXX' or h == 'xxx':
Flag = False
else:
total = total + 1
house.append(h)
except ValueError:
print("Please enter a word, Thanks")
print()为了获得事件和房屋的意义
for i in (event):
for j in (house):
Flag = True
while Flag:
try:
sevent = int(input("Enter %s's house for %s score: "%(j, i)))
if sevent < 0:
print("Enter a number above 0, Thanks")
else:
Flag = False
except ValueError:
print("Please enter a number above, Thanks")
if j not in scores:
scores[j] = []
scores[j].append(sevent)
score.append(sevent)我也有打印总冠军和每个项目的总得分,但我不知道如何获得每个项目的赢家,房子和房子的最佳平均和最多的获胜数。
要获得每个项目的总冠军和总分:
for house, score in sorted(scores.items(), key=lambda x: sum(x[1]),reverse=True):
print ("House %s's Total Score: %i"%(house, sum(score)))
print(scores)
print("The Overall Winner is", max(scores, key=lambda h: sum(scores[h])))
print()输出的一个例子是:
House House 1's Total Score: 80House House 3's Total Score: 70
House House 2's Total Score: 40
The Overall Winner is House 1示例的数组如下:
{'House 1': [20, 60], 'House 2': [30, 10], 'House 3': [40, 30]}谢谢你的帮助,我真的很感激。
发布于 2015-08-27 09:50:32
首先,考虑一下构建字典score的方式
event[0]的分数是在score[house_name][0],event[1]的分数是在score[house_name][1],event[last_event_index]的分数在score[house_name][last_event_index]中。因此,要获得每个项目的获胜者,首先必须枚举所有事件:
for event_index, event_name in enumerate(event):
...如果您不熟悉枚举():它会将基于零的索引与每个事件名称关联起来。因此,如果您有event = ['A', 'B', 'C', 'D'],enumerate(event)将生成以下对:
(0, 'A')(1, 'B')(2, 'C')(3, 'D')现在,您可以遍历所有房屋并为特定事件提取它们的得分:
for event_index, event_name in enumerate(event):
for house_name, house_scores in scores.items():
print('House %s scored %d in event %s' % (
house_name,
house_scores[event_index],
event_name,
))为了获得最好的得分,我们可以将每个分数放在一个列表中,并对其进行排序:
for event_index, event_name in enumerate(event):
event_scores = []
for house_name, house_scores in scores.items():
house_event_score = house_scores[event_index]
event_scores.append((house_event_score, house_name))
# This will sort 'event_scores' from the lowest score
# to the highest.
event_scores.sort()
# The winner (with the highest score) is the last element
# of the list, i.e. the element with index -1.
winner_score, winner_name = event_Scores[-1]
print('%s has won %s with score %d' % ((
winner_name,
event_name,
winner_score,
))https://stackoverflow.com/questions/32245815
复制相似问题