好吧,这有点复杂。我有一个函数,它接受两个通过 txt 文件创建的字典参数,这些参数已经在其他函数中返回。国家参数有一个三字母国家代码作为键和对应的国家作为值。奖牌词典已将三个字母代码作为键,但其中包含四个整数,分别对应于# of games、金牌、银牌和铜牌。功能是通过奖牌字典接受三个字母的国家代码循环,并查看代码是否是奖牌字典中的键。可能会发生三种可能性:如果是,那么它应该创建一个格式如下的列表:[
[‘Country’,’Code’,’Gold’,’Silver’,’Bronze’],
[‘Great Britain’
,
‘GRE’
,800, 400, 750]
]
. 这部分编译并制作一个列表,但游戏部分需要从奖牌键值中删除并作为分支列表而不是元组/集合返回。如果字符串不是字典中的键,则如果字符串为空,则将具有上述格式的每个国家添加到列表中。这部分没有编译,因为我认为我是为了即时循环错误。如果字符串不为空且不在字典中,则返回[INVALID CODE, n/a]
. 我很确定那部分有效。这是我的代码:
def findMedals(countries, medals):
some_strng = input("input a three letter country code and i'll see if I can find it: ")
reference = ['Country','Code','Gold','Silver','Bronze']
medalList= [reference]
for key in medals.items():
if some_strng in key:
medalList.append([countries[some_strng],key,medals[some_strng]])
break
if not some_strng in key:
if some_strng == '':
medalList.append([countries[some_string], key for key in countries,medals[some_strng] for key in medals])
else:
medalList.append(['INVALID CODE', 'n/a'])
print(medalList)
return(medalList)
findMedals(country('CountryCodes.txt'),medals('GoldMedals.txt'))