python中排序的一种方法

2024-06-05 23:31:30 发布

您现在位置:Python中文网/ 问答频道 /正文

谢谢你的关心,但我不能接受这个。在

例如,在python3中,我有一个列表。在

import os
list = []
for carpeta in os.listdir(os.getcwd()):
 if(os.path.isdir(carpeta)):
     LISTA.append(carpeta)
print(LISTA)
~
$THIS IT PRINTS JUST THE DIRECTORIES:
['1. Introducción', '10. Área de Texto', '11. Listas de Selección', '12. Estructura de Archivo HTML', '13. Estructura del Proyecto', '14. Incluir CSS', '15. Selecciones con CSS', '16. reset.css', '17. Box Model', '18. Elementos flotantes', '19. Anchos Máximos y Mínimos', '2. Conceptos Básicos de Desarrollo Web', '20. Centrado Horizontal', '21. Imagen de Fondo', '22. Fuentes con Formato', '23. Formateando Listas', '24. Formateando Tablas', '25. Resumen', '3. Títulos y Párrafos', '4. Enlaces', '5. Imágenes', '6. Listas', '7. Tablas', '8. Formularios', '9. Tipos de Input']

但是,例如,文件夹有这样的模式:“1。介绍,'2。概念Básicos de desarrolo网站“……”9Tipos de输入','10。Área de Texto'

它不像windows资源管理器那样阅读

sorting example that i need


Tags: osdeconcsspython3listasrea关心
3条回答

用lambda对列表排序:

sorted(Lista,key=lambda x: int(x.split(".")[0]))

int(x.split(".")[0])是目录号,因此在'1. Introducción'中应该是1,依此类推。。在

或就地排序Lista.sort(Lista,key=lambda x: int(x.split(".")[0]))

sorted创建新列表list.sort对原始列表排序

一个link的文档,它解释了列表.排序然后分类

取自docs

lambda_expr ::= "lambda" [parameter_list]: expression

lambda_expr_nocond ::= "lambda" [parameter_list]: expression_nocond

Lambda表达式(有时称为Lambda forms)用于创建匿名函数。表达式lambda arguments:表达式生成函数对象。未命名对象的行为类似于用定义的函数对象

^{pr2}$

一个简单的例子:

lam = lambda x : x + 4

def foo(x):
    return x+4

print("Calling foo: {}".format(foo(5)))
print("Calling lam: {}".format(lam(5)))
Calling foo: 9
Calling lam: 9

假设列表中的每一项都以一个数字开头,后跟一个点字符,您可以这样对列表进行排序(其中lst是原始列表):

>>> lst.sort(key=lambda x:int(x.split()[0][:-1]))
>>> lst
['1. Introducci\xc3\xb3n', '2. Conceptos B\xc3\xa1sicos de Desarrollo Web', '3. T\xc3\xadtulos y P\xc3\xa1rrafos', '4. Enlaces', '5. Im\xc3\xa1genes', '6. Listas', '7. Tablas', '8. Formularios', '9. Tipos de Input', '10. \xc3\x81rea de Texto', '11. Listas de Selecci\xc3\xb3n', '12. Estructura de Archivo HTML', '13. Estructura del Proyecto', '14. Incluir CSS', '15. Selecciones con CSS', '16. reset.css', '17. Box Model', '18. Elementos flotantes', '19. Anchos M\xc3\xa1ximos y M\xc3\xadnimos', '20. Centrado Horizontal', '21. Imagen de Fondo', '22. Fuentes con Formato', '23. Formateando Listas', '24. Formateando Tablas', '25. Resumen']

我用这个片段来正常排序

def sort_nicely( l ):
    """ Sort the given list in the way that humans expect.

    Source: http://stackoverflow.com/a/5491962
    """
    convert = lambda text: int(text) if text.isdigit() else text
    alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
    l.sort( key=alphanum_key )

它会改变列表本身:

^{pr2}$

相关问题 更多 >