如何仅比较含数字文本中的数字部分(基于Selenium场景)
解决方法
不需要提前提取数字创建新列表,直接在判断逻辑里实时解析每个元素的文本内容,把数字部分转成数值后再做比较就行,代码示例如下:
基础版本(仅比较数字部分,忽略K的量级)
for gem_element in gems: # 拆分文本取带K的数字段,去掉K后转成浮点数 gem_num = float(gem_element.text.split()[0].replace('K', '')) if gem_num > 10.5: print(gem_element.text)
考虑K量级的版本(如果K代表千位,比如17.4K=17400)
如果需要按实际数值比较(比如10.5对应10500 gems),可以这样处理:
threshold = 10.5 * 1000 # 对应10.5K的实际数值 for gem_element in gems: num_segment = gem_element.text.split()[0] if 'K' in num_segment: # 转换为实际数值 actual_num = float(num_segment.replace('K', '')) * 1000 else: actual_num = float(num_segment) if actual_num > threshold: print(gem_element.text)
这样既不用生成新的数字列表,直接遍历原元素列表就能完成判断和打印。
内容的提问来源于stack exchange,提问作者Aeternus
相关产品推荐
相关产品推荐

