对Lis的各个元素进行排序

2024-04-16 09:54:55 发布

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

我试图对列表中的单个元素进行排序,但不一定是对整个列表进行排序。你知道吗

给出以下列表

L = ['A,X,D' , 'Q,A' , 'A,C,B']

我想对每个元素按字母顺序进行排序,使其看起来如下所示

L = ['A,D,X' , 'A,Q', 'A,B,C']

我试过了

L = sorted(L, key = lambda x: x[0])

Tags: lambdakey元素列表排序顺序字母sorted
3条回答

尝试:

L = [",".join(sorted(l.split(","))) for l in L]

您需要对列表的每个部分进行排序:

L = ['A,X,D' , 'Q,A' , 'A,C,B']

L2 = [','.join(sorted(x.split(','))) for x in L]

L2
# ['A,D,X', 'A,Q', 'A,B,C']

如果不使用split,则将使用逗号进行排序,逗号的字典值低于字母字符:

sorted(L[0])
# ',', ',', 'A', 'D', 'X'

join将逗号放回原来的位置

可以将str.splitsorted一起使用:

L = ['A,X,D' , 'Q,A' , 'A,C,B']
new_l = [','.join(sorted(i.split(','))) for i in L]

输出:

['A,D,X', 'A,Q', 'A,B,C']

相关问题 更多 >