python删除列表中的整数_如何从列表中删除几乎重复的整数?

我正在用Python解析一些pdf。这些PDF以视觉方式组织成行和列。pdftohtml脚本将这些pdf转换为XML格式,其中充满了松散的标记,这些标记没有任何层次结构。然后,我的代码需要将这些标记重新排序成行。在

由于每个标记都有类似于“top”或“left”坐标的属性,所以我编写了代码将具有相同“top”坐标的项附加到列表中。这个列表实际上是一行。在

我的代码首先遍历页面,找到所有唯一的“top”值,并将它们附加到tops列表中。然后它会迭代这个tops列表。对于每个唯一的top值,它搜索具有该“top”值的所有项,并将它们添加到行列表中。在for side in page:

tops = list( set( [ d['top'] for d in side ] ) )

tops.sort()

for top in tops:

row = []

for blob in side:

if int(blob['top']) == int(top):

row.append(blob)

rows.append(row)

这段代码对于我正在解析的大多数pdf都非常有用。但有些情况下,在同一行的项目有不同的顶部值,稍微相差一到两个。在

我正在尝试调整我的代码,使其变得更模糊。在

底部的比较似乎很容易修复。像这样:

^{pr2}$

但是,我首先创建的唯一的最高值列表是个问题。我使用的代码是tops = list( set( [ d['top'] for d in side ] ) )

在这些边缘情况下,我最终得到的列表如下:[925, 946, 966, 995, 996, 1015, 1035]

我如何调整代码以避免列表中出现“995”和“996”?我想确保当整数在1或2之间时,我只得到一个值。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值