我已经从一个表中提取了数据,但它不是一个用TR/TD标记生成的常规表,而是用DIV和SPAN生成的。我已经把我的数据写进了口述稿
{'ab1911': '2', 'ab1912': '1', 'ab1938': '1', 'ab1939': '0','ab1965': '18', 'ab1966': '12', 'ab1993': '18', 'ab1994': '10','ab2021': '5', 'ab2022': '21', 'ab2049': '4', 'ab2050': '4'}.
在这里,字典的键是元素的唯一ID,本质上是动态的。每次重新加载ID都会更改
web表中的实际数据如下
Revision | Iteraion
2 1
1 0
18 12
18 10
5 21
4 4
我要做的是选择最大修订的行,如果修订相同,那么选择最大迭代的行。正确答案是第18版和第12版
我想的是,如果我能把这本字典转换成这样一个小字典列表
[{'ab1911': '2', 'ab1912': '1'},{'ab1938': '1', 'ab1939': '0'},{'ab1965': '8', 'ab1966': '18'},{'ab1993': '18', 'ab1994': '10'},{'ab2021': '5', 'ab2022': '21'},{'ab2049': '4', 'ab2050': '4'}]
然后比较列表中每个元素的第一个键值并找到最大值。 在得到值之后,我可以用键(选择器的ID)从表中选择最大值。 那么我怎样才能把字典转换成更小的字典呢
假设您希望完全按照所描述的方式完成任务,而不考虑清洁度或可移植性,则以下代码将生成您希望看到的数组:
来自官方文件的解决方案
如果您参考官方文档中的Itertools Recipes,那么有一个由
n
块进行迭代的示例。我们可以成对地迭代原始dict
的键,并创建所需的list
的dict
Itertools配方中的原始石斑鱼方法
对成对方法的修改
迭代对并创建dict列表
旁注
正如评论所建议的,如果可能的话,您可能需要重新考虑如何读取数据
相关问题 更多 >
编程相关推荐