Python 3.x 额外0';附加了一些注释
我正在计算数据,如果找到一项运动,那么应该为相应的名称组和相应的权重计算数据,如果没有找到,那么应该附加“0” 这是我的代码:Python 3.x 额外0';附加了一些注释,python-3.x,Python 3.x,我正在计算数据,如果找到一项运动,那么应该为相应的名称组和相应的权重计算数据,如果没有找到,那么应该附加“0” 这是我的代码: Name_list = ['akshay', 'swapnil', 'parth','juhi','megha', 'varun', 'tarun','gaurav', 'geeta'] dic1 = { 'g1': ['akshay', 'swapnil', 'parth','juhi'], 'g2': ['megha', 'varun', 'tarun'],
Name_list = ['akshay', 'swapnil', 'parth','juhi','megha', 'varun', 'tarun','gaurav', 'geeta']
dic1 = {
'g1': ['akshay', 'swapnil', 'parth','juhi'],
'g2': ['megha', 'varun', 'tarun'],
'g3': ['gaurav', 'geeta']
}
dic2 = {
'g1': ['hockey', 'basketball', 'football'],
'g2': ['cricket', 'chess', 'badminton', 'carrom'],
'g3': ['pool', 'hockey', 'tabletennis']
}
dic3 = {
'g1': ['45', '35', '56'],
'g2': ['67', '76', '65', '50'],
'g3': ['8', '70', '96']
}
for k,v in dic2.items():
for i,l in enumerate(v):
if l=='hockey':
comp_list = dic1[k]
weight = dic3[k][i]
for name in Name_list:
if name in comp_list:
a = (1*int(weight))/100
else:
a = 0
print(a)
获得的输出为:
0.45
0.45
0.45
0.45
0
0
0
0
0
0
0
0
0
0
0
0
0.7
0.7
在这里,添加了更多的零,尽管名称列表中只有9个名称
所需输出为:
0.45
0.45
0.45
0.45
0
0
0
0.7
0.7
有人能帮我解决这个问题吗?您迭代dic 3的所有元素及其数组中的所有后续元素。您有两个“曲棍球”字段,这意味着您将执行两次在名称列表中查找的循环,因此您将打印2x9=18次。您将遍历dic 3的所有元素及其数组中的所有子元素。您有两个“曲棍球”字段,这意味着您将执行两次在名称列表中查找的循环,因此您将打印2x9=18次。“曲棍球”在dic2中有两次:一次在
g1
中,一次在g3
中。因此,您要处理名称列表两次。如何解决this@PARTHKHAMAR你可以做很多事情。从一个dic2
列表中删除'hockey'
,在第一次看到它后打破循环,重构循环。。。你想采取哪种方法取决于你实际想要实现的目标,这在你的问题中并不清楚。我想要的是“a”应该用以下公式计算:对于['akshay'、'swapnil'、'parth'、'juhi'],wt=45,对于['gaurav'、'geeta'],wt=70,因为“曲棍球”出现在“g1”和“g3”中。“曲棍球”在dic2中出现两次:一次在g1
中,一次在g3
中。因此,您要处理名称列表两次。如何解决this@PARTHKHAMAR你可以做很多事情。从一个dic2
列表中删除'hockey'
,在第一次看到它后打破循环,重构循环。。。你想采取哪种方法取决于你实际想要实现的目标,这一点从你的问题中并不清楚。我想要的是“a”应该用以下公式计算:对于['akshay'、'swapnil'、'parth'、'juhi'],wt=45;对于['gaurav'、'geeta'],wt=70,因为“曲棍球”出现在“g1”和“g3”中。