Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何按列表中项目名称的字母顺序对项目进行排序。_Python - Fatal编程技术网

Python 如何按列表中项目名称的字母顺序对项目进行排序。

Python 如何按列表中项目名称的字母顺序对项目进行排序。,python,Python,我试图按照列表中的值名称中的字母对其进行排序:例如,我希望,[“8a”、“8c”、“8b”、“8d”]变成[“8a”、“8b”、“8c”、“8d”]。这与密钥有关吗?您可以通过按列表对其排序来完成 list = ["8a", "8c", "8b", "8d"] list.sort() print(list) 您可以通过按列表对其进行排序来实现这一点 list = ["8a", "8c", "8b", "8d"] list.sort() print(list) 这将解决您的问题: _lis

我试图按照列表中的值名称中的字母对其进行排序:例如,我希望,[“8a”、“8c”、“8b”、“8d”]变成[“8a”、“8b”、“8c”、“8d”]。这与密钥有关吗?

您可以通过按列表对其排序来完成

list = ["8a", "8c", "8b", "8d"] 
list.sort()
print(list)

您可以通过按列表对其进行排序来实现这一点

list = ["8a", "8c", "8b", "8d"] 
list.sort()
print(list)

这将解决您的问题:

_list = ["8a", "8c", "8b", "8d"] 
_list.sort()
print _list
输出:

['8a', '8b', '8c', '8d']

这将解决您的问题:

_list = ["8a", "8c", "8b", "8d"] 
_list.sort()
print _list
输出:

['8a', '8b', '8c', '8d']

如果数据看起来像你的问题,答案很简单。如果数据更复杂,则必须为
排序
方法提供一个只包含字母表中字符的键

data =  ["34b", "2a5t", "2a5s", "abcd"]
data.sort(key=lambda x: ''.join(c for c in x if c.isalpha()))
print(data)
这将为您提供
['abcd','2a5s','2a5t','34b']

如果要查看构造的键的外观,可以按如下方式进行检查:

for value in data:
    print(value, ''.join(c for c in value if c.isalpha()))

34b b
2a5t at
2a5s as
abcd abcd

如果数据看起来像你的问题,答案很简单。如果数据更复杂,则必须为
排序
方法提供一个只包含字母表中字符的键

data =  ["34b", "2a5t", "2a5s", "abcd"]
data.sort(key=lambda x: ''.join(c for c in x if c.isalpha()))
print(data)
这将为您提供
['abcd','2a5s','2a5t','34b']

如果要查看构造的键的外观,可以按如下方式进行检查:

for value in data:
    print(value, ''.join(c for c in value if c.isalpha()))

34b b
2a5t at
2a5s as
abcd abcd
已经提到了列表的.sort()方法;有一个排序函数,它将列表作为参数,并在不修改列表的情况下返回已排序列表:

>>> mylist = ["8a", "8c", "8b", "8d"]
>>> sorted(list)
['8a', '8b', '8c', '8d']
>>> mylist
['8a', '8c', '8b', '8d']
已经提到了列表的.sort()方法;有一个排序函数,它将列表作为参数,并在不修改列表的情况下返回已排序列表:

>>> mylist = ["8a", "8c", "8b", "8d"]
>>> sorted(list)
['8a', '8b', '8c', '8d']
>>> mylist
['8a', '8c', '8b', '8d']

假设您的格式始终是数字后跟字母,则需要为排序方法指定一个要排序的特定键:在这种情况下,您希望按最后一个字符排序。很多其他答案只是按照字母顺序排列你的列表,后面跟着字母,而我感觉你只想按字母排序。这是一种可能的方法:

 s = ['9d', '12a', '1e']
 sorted_s = sorted(s, key=lambda x:x[-1])   # sorts by the last character of every entry
这将返回:

['12a', '9d', '1e']

假设您的格式始终是数字后跟字母,则需要为排序方法指定一个要排序的特定键:在这种情况下,您希望按最后一个字符排序。很多其他答案只是按照字母顺序排列你的列表,后面跟着字母,而我感觉你只想按字母排序。这是一种可能的方法:

 s = ['9d', '12a', '1e']
 sorted_s = sorted(s, key=lambda x:x[-1])   # sorts by the last character of every entry
这将返回:

['12a', '9d', '1e']
尝试按列表中的值名称中的字母对其进行排序

你提到的例子很简单。根据您的要求,下面是使用
re.findall()
sorted()
根据字符串中任意顺序的字母进行排序的代码:

>>> import re
>>> s = ['a9d', '1a2ba', '1e2s', '1b3tr']
>>> sorted(s, key=lambda x: re.findall("[a-zA-Z]+", x))
['1a2ba', 'a9d', '1b3tr', '1e2s']  # Sorted based on: aba, ad, btr, es
尝试按列表中的值名称中的字母对其进行排序

你提到的例子很简单。根据您的要求,下面是使用
re.findall()
sorted()
根据字符串中任意顺序的字母进行排序的代码:

>>> import re
>>> s = ['a9d', '1a2ba', '1e2s', '1b3tr']
>>> sorted(s, key=lambda x: re.findall("[a-zA-Z]+", x))
['1a2ba', 'a9d', '1b3tr', '1e2s']  # Sorted based on: aba, ad, btr, es

这是非常广泛的,很可能这不是你的真实情况,否则
排序(lst)
就可以了。字母总是第二个字符吗?1)这样的列表的结果应该是什么:['9a','6b','3d']?2) 列表中条目的格式总是一个数字加一个字符吗?@Sean:因为你还没有回复@gowrath的澄清,我添加了一个答案,根据列表中的
值按其名称中的字母排序,即字符串中的
字母的任何顺序这是非常广泛的,这很可能不是你的真实情况,否则
sorted(lst)
就可以了。字母总是第二个字符吗?1)像这样的列表的结果应该是什么:['9a','6b','3d']?2) 列表中条目的格式是否总是一个数字后跟一个字符?@Sean:因为您还没有回复@gowrath的澄清,我添加了一个答案,根据列表中的
排序值,按其名称中的字母排序,即
字母的任何顺序,谢谢。保留变量名“list”只是因为OP就是这么叫的。更正,谢谢。保留变量名“list”只是因为OP就是这么叫的。