首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python字符串数组排序

python字符串数组排序
EN

Stack Overflow用户
提问于 2012-11-21 00:45:49
回答 3查看 773关注 0票数 0

我想使用python对字符串数组进行排序。

我有一个字符串数组

代码语言:javascript
复制
str_array = {string1, string2, string3}
all string formats are AB-CD-EFGH-IJ-NAME ------> 12-34-5678-09-PHOTO

AB= 00 to 99
CD= 00 to 99
EFGH= 0000 to 9999
IJ= 00 to 99
NAME= any alphabetic name

我想要排序字符串首先有相等的数值(删除"-“从字符串的数字部分),然后字母顺序。

例如12-34-5678-09-PHOTO将是1234568809-PHOTO。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-21 01:01:05

定义一个键函数,它接受可迭代名称的一个元素作为输入,并返回一个由整数(first)和str_array (Second)组成的元组键:

代码语言:javascript
复制
def mykey(text):
    numtxt, name = text.rsplit('-',1)
    numtxt = int(numtxt.replace('-',''))
    return (numtxt, name)

new_str = sorted(str_array, key = mykey)

例如,

代码语言:javascript
复制
In [30]: sorted(['12-34-5678-09-PHOTO', '12-34-5678-09-MOTOR', '12-04-5678-09-PHOTO', ], key = mykey)
Out[30]: ['12-04-5678-09-PHOTO', '12-34-5678-09-MOTOR', '12-34-5678-09-PHOTO']

有关此排序技术的更多信息,请参阅HOWTO Sort wiki

请注意,sorted将返回一个新列表。如果希望就地对str_array进行排序,则使用

代码语言:javascript
复制
str_array.sort(key = mykey)
票数 0
EN

Stack Overflow用户

发布于 2012-11-21 00:53:04

我不完全理解你的问题,但看看这是否有帮助:

代码语言:javascript
复制
def myCmp(s1, s2):
    s1 = s1.replace('-', '', 3)
    s2 = s2.replace('-', '', 3)
    int1, _, name1 = s1.partition('-')[0]
    int2, _, name2 = s2.partition('-')[0]
    if int1 < int2:
        return -1
    elif int1 > int2:
        return 1
    elif name1 < name2:
        return -1
    elif name1 > name 2:
        return 1
    else:
        return 0

str_array.sort(cmp=myCmp)
票数 1
EN

Stack Overflow用户

发布于 2012-11-21 00:51:59

呃,这个排序是怎么样的?

无论如何。

代码语言:javascript
复制
"".join(yourstring.split('-')) 

是删除破折号的规范方法。您可以通过指定最大拆分数来保留最后一个。

代码语言:javascript
复制
"".join(test.split('-', 3))

如果您想要按字母部分排序,除非您使用存储元组中的字母部分并按该键排序,否则它不会直观地工作:

代码语言:javascript
复制
temp = test.split('-')
numbers, alpha = "".join(temp[:-1]), temp[-1]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13477942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档