python - 避免使用 Python min() max() 对数值进行字典顺序排序

标签 python sorting max min

我有一个脚本可以从一组值中提取随机数。但是,今天它坏了,因为 min()max() 按字典顺序对值进行排序(因此 200 被认为大于 10000)。我怎样才能在这里避免字典顺序? Len 键在正确的轨道上,但不太正确。我找不到任何其他有帮助的 key 。

data_set = 1600.csv, 2405.csv, 6800.csv, 10000.csv, 21005.csv

第一次尝试:

highest_value = os.path.splitext(max(data_set))[0]
lowest_value = os.path.splitext(min(data_set))[0]

返回:lowest_value = 10000 highest_value = 6800

第二次尝试:

highest_value = os.path.splitext(max(data_set,key=len))[0]
lowest_value = os.path.splitext(min(data_set,key=len))[0]

返回:lowest_value = 1600 highest_value = 10000

谢谢。

最佳答案

您可以使用 key 按文件的数字部分排序:

data_set = ['1600.csv', '2405.csv', '6800.csv', '10000.csv', '21005.csv']

highest = max(data_set, key=lambda x: int(x.split('.')[0]))
lowest = min(data_set, key=lambda x: int(x.split('.')[0]))

print(highest) # >> 21005.csv
print(lowest)  # >> 1600.csv

关于python - 避免使用 Python min() max() 对数值进行字典顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47294468/

相关文章:

python - 将 Lambda 与从数据帧的不同列获取参数的函数一起使用

python :如何打开火狐(OS X)

javascript - 根据数组对象中存在的键排序

java - Java中的方法执行顺序排序

python - 在值重复的情况下在字典中查找最大键的最大值的键

python - 对连续的非连续切片进行 Numpy 缩减

algorithm - 最大独立集算法

python - 如果条件为真,则使用 python 代码发送邮件

python - 如何动态创建 SQLAlchemy 列

php - 合并不同列表的搜索结果并按日期排序