相关疑难解决方法(0)

Python是否具有用于字符串自然排序的内置函数?

使用Python 3.x,我有一个字符串列表,我想对其执行自然的字母排序.

自然排序: Windows中文件的排序顺序.

例如,以下列表是自然排序的(我想要的):

['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
Run Code Online (Sandbox Code Playgroud)

这是上面列表的"排序"版本(我有):

['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个行为与第一个类似的排序函数.

python sorting python-3.x

249
推荐指数
9
解决办法
8万
查看次数

在python中排序 - 如何对包含字母数字值的列表进行排序?

我有一个包含以下详细信息的列表:

list1 = ["1", "100A", "342B", "2C", "132", "36", "302F"]
Run Code Online (Sandbox Code Playgroud)

现在,我想对此列表进行排序,以使值按以下顺序排列:

list1 = ["1", "2C", "36", "100A", "132", "302F", "342B"]
Run Code Online (Sandbox Code Playgroud)

只是list1.sort()显然没有给出正确的答案 - 它给出:

list1 = ["1", "100A", "132", "2C", "36", "302F", "342B"]
Run Code Online (Sandbox Code Playgroud)

我假设这是因为python直接将所有这些视为字符串.但是,我想根据它们的数值FIRST对它们进行排序,然后根据数字后面的字符对它们进行排序.

我该怎么办?

非常感谢 :)

python sorting python-2.7 python-3.x

10
推荐指数
1
解决办法
9162
查看次数

根据字符串中的数字排序字符串列表

例如,我有列表

my_list= ['image101.jpg', 'image2.jpg', 'image1.jpg']
Run Code Online (Sandbox Code Playgroud)

my_list.sort()
Run Code Online (Sandbox Code Playgroud)

给我

['image1.jpg', 'image101.jpg', 'image2.jpg']
Run Code Online (Sandbox Code Playgroud)

但我当然需要

['image1.jpg', 'image2.jpg', 'image101.jpg']
Run Code Online (Sandbox Code Playgroud)

怎么做?

python sorting list

6
推荐指数
3
解决办法
1354
查看次数

在python中按数字排序字符串列表

我想读一些.csv文件并打印第5列的最小值和最大值.我还想打印哪个文件我可以找到最大值或最小值.

我的代码现在是:

import pandas, glob
import numpy as np

path = "/home/path/to/log/"

fn = glob.glob(path + "*.csv") 
list_of_dfs = [pandas.read_csv(filename, header=None) for filename in fn]
k = len(list_of_dfs)
b = np.zeros((k, 1))
cnt = 0 
for i in list_of_dfs:
    b[cnt,0] = np.min(i[4])
    cnt = cnt + 1
print(np.min(b[:,0]))
print(np.argmin(b[:,0]))
Run Code Online (Sandbox Code Playgroud)

我的.csv文件命名如下:

0.csv,1.csv ... 10.csv ... 2463.csv

看到我的argmin没有显示正确的文件后,我意识到fn没有排序.我在目录中按升序发现了这个Sort文件名,解决方案是:

fn.sort(key=lambda f: int(filter(str.isdigit, f)))
Run Code Online (Sandbox Code Playgroud)

但是这行我得到以下错误:

TypeError: int() argument must be a string, a bytes-like object or a number, not 'filter' …
Run Code Online (Sandbox Code Playgroud)

python csv pandas

1
推荐指数
1
解决办法
59
查看次数

标签 统计

python ×4

sorting ×3

python-3.x ×2

csv ×1

list ×1

pandas ×1

python-2.7 ×1