gpt4 book ai didi

Python 字符串的数值排序

转载 作者:行者123 更新时间:2023-12-01 01:29:17 24 4
gpt4 key购买 nike

如何使 Python 排序的行为类似于 GNU coreutils 中的 sort -n

这是我的images.txt:

Vol. 1/Vol. 1 - Special 1/002.png
Vol. 1/Chapter 2 example text/002.png
Vol. 1/Vol. 1 Extra/002.png
Vol. 1/Chapter 2 example text/001.png
Vol. 1/Vol. 1 Extra/001.png
Vol. 1/Chapter 1 example text/002.png
Vol. 1/Vol. 1 - Special 1/001.png
Vol. 1/Chapter 1 example text/001.png

当我运行这个 Bash 脚本时:

#!/bin/bash

cat images.txt | sort -n

我得到以下输出:

Vol. 1/Chapter 1 example text/001.png
Vol. 1/Chapter 1 example text/002.png
Vol. 1/Chapter 2 example text/001.png
Vol. 1/Chapter 2 example text/002.png
Vol. 1/Vol. 1 Extra/001.png
Vol. 1/Vol. 1 Extra/002.png
Vol. 1/Vol. 1 - Special 1/001.png
Vol. 1/Vol. 1 - Special 1/002.png

但是当我运行这个 Python 脚本时:

#!/usr/bin/env python3

images = []

with open("images.txt") as images_file:
for image in images_file:
images.append(image)

images = sorted(images)

for image in images:
print(image, end="")

我得到以下输出,这不是我需要的:

Vol. 1/Chapter 1 example text/001.png
Vol. 1/Chapter 1 example text/002.png
Vol. 1/Chapter 2 example text/001.png
Vol. 1/Chapter 2 example text/002.png
Vol. 1/Vol. 1 - Special 1/001.png
Vol. 1/Vol. 1 - Special 1/002.png
Vol. 1/Vol. 1 Extra/001.png
Vol. 1/Vol. 1 Extra/002.png

如何使用 Python 实现与使用 Bash 和 sort -n 实现的相同结果?

最佳答案

虽然我不是专家,看来 '-' 的顺序与 Python 不同。此特定问题的快速解决方法是在排序时将 ' - ' 替换为 ' ':

L = sorted(L, key=lambda x: x.replace(' - ', ' '))

关于Python 字符串的数值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53050904/

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