我正在计算包含词典的列表的净运行率。 假设列表为:
score = [{'dismissal': 'run out (Hardik Pandya)', 'balls': '92', 'name': 'Amla', 'fours': '5', 'six': '0', 'runs': '71'},
{'dismissal': 'c Kohli b Bumrah', 'balls': '32', 'name': 'Markram(c)', 'fours': '4', 'six': '1', 'runs': '32'},
{'dismissal': 'c Rohit b Hardik Pandya', 'balls': '5', 'name': 'Duminy', 'fours': '0', 'six': '0', 'runs': '1'}
..........]
我试图计算这些值的NRR,这些值是动态的,它们不断变化,我尝试使用枚举,但我不知道如何进一步进行。你知道吗
dic= {k+str(i): v for i, x in enumerate(score, 1) for k, v in x.items()}
这将为字典的键添加索引。在这之后我该怎么办?有没有其他方法可以做到这一点? 顺便说一下,要计算NRR公式是=(跑步/球)*100,任何帮助都会有所帮助。你知道吗
期望得到这样的结果:
dic = [{'dismissal1': 'run out (Hardik Pandya)', 'balls1': '92', 'name1': 'Amla', 'fours1': '5', 'six1': '0', 'runs1': '71','NRR1':'19.3'},
{'dismissal2': 'c Kohli b Bumrah', 'balls2': '32', 'name2': 'Markram(c)', 'fours2': '4', 'six2': '1', 'runs2': '32','NRR2':'44.3'},
{'dismissal3': 'c Rohit b Hardik Pandya', 'balls3': '5', 'name3': 'Duminy', 'fours3': '0', 'six3': '0', 'runs3': '1','NRR3':'45.3'}
..........]
也可以使用数据帧方法计算NRR:
输出:
也可以转换为字典:
输出:
对于保龄球经济(如评论中所问):
输出:
你就快到了,只需要一行字就可以更新字典了。只需调整你的听写/列表理解如下:
因为
enumerate
是0索引的,所以您可能需要添加str(i+1)
演示:
为了计算净运行率,建议不要使用列表理解-为了可读性。你可以使用for循环来计算NRR
让我们看看这一点:
这能更简洁吗?可能吧-但我会把这个留给你。你知道吗
这是一种方法:
相关问题 更多 >
编程相关推荐