相关疑难解决方法(0)

按多个属性对列表进行排序?

我有一份清单清单:

[[12, 'tall', 'blue', 1],
[2, 'short', 'red', 9],
[4, 'tall', 'blue', 13]]
Run Code Online (Sandbox Code Playgroud)

如果我想按一个元素排序,比如高/短元素,我可以通过s = sorted(s, key = itemgetter(1)).

如果我想作为排序依据两个高大/ short和颜色,我可以为每个元素做排序两次,一次,但有一个更快的方法?

python sorting

398
推荐指数
5
解决办法
25万
查看次数

Python使用的字符串比较技术

我想知道Python如何进行字符串比较,更具体地说,它是如何在使用小于(<)或大于(>)运算符时确定结果的.

例如,如果我把print('abc' < 'bac')我得到True.我理解它比较了字符串中的相应字符,但是由于缺乏更好的术语而不清楚为什么还有更多的字符,"权重"放在第一个字符串中的a小于b(第一个位置)而不是a在第二个字符串(第二个位置)中小于b的事实.

python string comparison

51
推荐指数
4
解决办法
8万
查看次数

Python的cmp_to_key函数如何工作?

我在这里遇到了这个功能.

我对这将如何实现感到困惑 - 如何key通过cmp_to_key知道给定元素的"位置"而不检查给定元素与其他感兴趣元素的比较来生成函数?

python sorting algorithm cmp python-internals

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

使用两个键排序Python列表,但只有一个按相反顺序排序

我想知道用两个键对元组列表进行排序的Pythonic方法是什么,其中用一个(并且只有一个)键进行排序将是相反的顺序,而用另一个键进行排序将不区分大小写.更具体地说,我有一个包含元组的列表:

myList = [(ele1A, ele2A),(ele1B, ele2B),(ele1C, ele2C)]
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码用两个键对其进行排序:

sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))
Run Code Online (Sandbox Code Playgroud)

要按相反顺序排序,我可以使用

sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]), reverse = True)
Run Code Online (Sandbox Code Playgroud)

但这会按两个键的相反顺序排序.

任何提示都非常感谢.

python sorting tuples key

9
推荐指数
3
解决办法
4906
查看次数

一次按行长度和字母顺序对字符串数组进行排序

我见过用其他几种语言提出这个问题,每种语言都有很好的答案。IE

如何按行长度对文件进行排序,然后按字母顺序对第二个键进行排序?

如何按字符串长度按字母顺序排序?

按字母顺序和长度对字符串进行排序?

我无法在 Golang 中弄清楚:/假设我有这个列表:

2 22 2H 2J 2J2 2J3 2J322422 2J322423 2J33 2M 2P 2W 2X
Run Code Online (Sandbox Code Playgroud)

我希望排序后的输出为:

2 22 2H 2J 2M 2P 2W 2X 2J2 2J3 2J33 2J322422 2J322423
Run Code Online (Sandbox Code Playgroud)

我在 Golang 中尝试了一些东西,但就是无法让它工作。

// Log
t.Log.Println(values)

// Sort values alphabetically
sort.Strings(values)

// Sort values by length
sort.Slice(values, func(i, j int) bool {
    return len(values[i]) < len(values[j])
})

// Log
t.Log.Println(values)
Run Code Online (Sandbox Code Playgroud)

sorting arraylist go slice

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

Python排序列表

我现在是python,对这种语言很新.

基于两个标准的排序列表给出一个单词列表,按照长度(最长到最短)的顺序返回具有相同单词的列表,第二个排序标准应该是按字母顺序排列的.提示:你需要考虑两个功能.

谁能帮我这个?

python sorting algorithm

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

排序字符串列表,忽略ASCII序数值

我想对此列表进行排序:

>>> L = ['A', 'B', 'C', ... 'Z', 'AA', 'AB', 'AC', ... 'AZ', 'BA' ...]
Run Code Online (Sandbox Code Playgroud)

正是它的方式,无论内容如何(假设所有CAPS alpha).

>>> L.sort()
>>> L
['A', 'AA', 'AB', 'AC'...]
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做:

>>> L.parkinglot_sort()
>>> L
['A', 'B', 'C', ... ]
Run Code Online (Sandbox Code Playgroud)

我正在考虑测试长度,并对每个长度进行排序,并将所有单独的1长,2长,n长度的元素混合L到新的中L.

谢谢!

python sorting ordinal

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