小编Dem*_*ene的帖子

如何自定义字母数字列表?

我有以下清单

l = ['SRATT', 'SRATW', 'CRAT', 'CRA0', 'SRBTT', 'SRBTW', 'SRAT0', 'SRBT0']
Run Code Online (Sandbox Code Playgroud)

我想按字母顺序排序,增加的规则是在末尾包含数字的字符串(实际上总是0)必须在最后一个完全按字母顺序排列的字符串后面(最后一个字母最多为W).

我怎样才能做到这一点?(如果可能的话,使用简单的方法sorted)


对于此示例列表,将获得所需的结果

['CRAT', 'CRA0', 'SRATT', 'SRATW' , 'SRAT0', 'SRBTT', 'SRBTW', 'SRBT0']
Run Code Online (Sandbox Code Playgroud)

例如以下不起作用

sorted(l, key=lambda x: x[-1].isdigit())
Run Code Online (Sandbox Code Playgroud)

因为它将包含最终数字的字符串放在最后,就像这样

['SRATT', 'SRATW', 'CRAT', 'SRBTT', 'SRBTW', 'CRA0', 'SRAT0', 'SRBT0']
Run Code Online (Sandbox Code Playgroud)

python sorting string list alphanumeric

6
推荐指数
1
解决办法
527
查看次数

按条件条件对列表进行排序

我知道如何使用sort()方法和适当的 lambda 规则在 Python 中简单地对列表进行排序。但是我不知道如何处理以下情况:

我有一个字符串列表,要么只包含字母,要么包含一个特定的关键字和一个数字。我想先对列表进行排序,以便将带有关键字的元素放在最后,然后按它们包含的数字对它们进行排序。

例如,我的列表可能是:mylist = ['abc','xyz','keyword 2','def','keyword 1']并且我希望它排序为['abc','def','xyz','keyword 1','keyword 2'].

我已经有类似的东西

mylist.sort(key=lambda x: x.split("keyword")[0],reverse=True)
Run Code Online (Sandbox Code Playgroud)

只产生

['xyz', 'def', 'abc', 'keyword 2', 'keyword 1']
Run Code Online (Sandbox Code Playgroud)

python sorting list

2
推荐指数
1
解决办法
1万
查看次数

将一个向量相对于另一个向量排序 - 最有效的方法?

我知道这个问题已经 被问 了好 几次,但是对于简单的情况(紧凑性,可读性或用户熟练程度是决定因素)提供了不同的答案,我不确定哪一个是最有效的,因为我担心重复该操作O(1M)次.

设置如下:

  • 两个向量ABfloat的; 这不能改变,但可以从A和创建其他结构B.
  • A并且B长度相等,至少为4,最多为20(如果这对任何方式都有帮助).
  • A需要根据其条目的值按降序排序,而B只需要匹配A的顺序.

例:

A = {2,4,3,1} -> {4,3,2,1}
     | | | |
B = {1,2,3,4} -> {2,3,1,4}
Run Code Online (Sandbox Code Playgroud)

题:

这样做最有效(快速+节省内存)的方法是什么?

c++ sorting performance vector

1
推荐指数
1
解决办法
248
查看次数

标签 统计

sorting ×3

list ×2

python ×2

alphanumeric ×1

c++ ×1

performance ×1

string ×1

vector ×1