gpt4 book ai didi

Python:在比较期间强制 heapq.merge 将字符串解释为整数

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:29 24 4
gpt4 key购买 nike

我正在尝试合并一组预先排序的文件,其中每个文件中的每一行都是一个整数:

for line in heapq.merge(*files):

排序成功完成,但比较是对文件内容作为字符串而不是整数进行的。如何强制进行整数比较?

最佳答案

试试这个:

for line in heapq.merge(*(map(int, file) for file in files)):

在比较过程中不会将字符串解释为整数,但实际上会即时将它们更改为整数。因此,结果是整数,而不是字符串。如果需要的话当然可以转换回字符串:

for line in map(str, heapq.merge(*(map(int, file) for file in files))):

供其他人/将来引用:这是针对 Python 3 的,其中 map 返回一个迭代器。在 Python 2 中,map 需要替换为 itertools.imap,以免在启动时将所有内容读入内存。

关于Python:在比较期间强制 heapq.merge 将字符串解释为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30145232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com