相关疑难解决方法(0)

如何按内部列表的特定索引对列表列表进行排序?

我有一份清单清单.例如,

[
[0,1,'f'],
[4,2,'t'],
[9,4,'afsd']
]
Run Code Online (Sandbox Code Playgroud)

如果我想通过内部列表的字符串字段对外部列表进行排序,那么如何在python中执行此操作?

python sorting

210
推荐指数
7
解决办法
23万
查看次数

Python:max/min内置函数取决于参数顺序

max(float('nan'), 1) 评估为nan

max(1, float('nan')) 评估为1

这是预期的行为吗?


谢谢你的回答.

max当iterable为空时引发异常.为什么Python maxnan出现时不会引发异常?或者至少做一些有用的事情,比如回归nan或忽略nan.目前的行为非常不安全,似乎完全不合理.

我发现这种行为更令人惊讶的结果,所以我刚发布了一个相关的问题.

python math comparison

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

为什么 NaN 在 python 中不会引发任何错误?

在我看来,类似的事情float('nan')应该被优化,但显然它们不在Python中。

>>> NaN = float('nan')
>>> a = [ 1, 2, 3, NaN ]
>>> NaN in a
True
>>> float('nan') in a
False
Run Code Online (Sandbox Code Playgroud)

nan不像其他事情那样进行优化还有什么意义吗?在我看来,nan只是nan

除此之外,当你使用sorted这些东西时,它们会给出奇怪的结果:

>>> sorted([3, nan, 4, 2, nan, 1])
[3, nan, 1, 2, 4, nan]


>>> 3 > float('nan')
False
>>> 3 < float('nan')
False
Run Code Online (Sandbox Code Playgroud)

上的比较nan是这样定义的,但对我来说它似乎并不“Pythonic”。为什么它不引发错误?

python

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

sorted() function differing from results obtained via list comprehension

I seem to be running into a bug with Python's built-in sorted function. I can't seem to find it documented or described anywhere, but I'm also getting results that seem to be inherently impossible based on my understanding of Python so I'm hoping that someone can help, or at least point me in the right direction.

To start, I've got a long list of floats (1.4m to be exact). They are all very small, and some of them are very …

python sorting floating-point

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

空和排序

使用NaN,可以获得无法正确排序的列表:

--> NaN = float('nan')
--> spam = [1, 2, NaN, 3, NaN, 4, 5, 7, NaN]
--> sorted(spam)
[1, 2, nan, 3, nan, 4, 5, 7, nan]
Run Code Online (Sandbox Code Playgroud)

我正在构建一个Null行为很像的对象,NaN语义是如果返回的对象是Null,它的实际值是未知的.甲Null对象也将能够与任何其他类型的对象(的相互作用int,float,str,bool,等等),但任何相互作用将导致Null.

从纯粹主义的观点来看,如果未知,则比较结果也是未知的,因为实际值可能比所比较的值更大,更小或相同.

从实际的角度来看,散落的Nulls列表是背后的痛苦.

所以我强烈倾向于实现比较,使得Null对象比其他对象少,所以它们总是排在一起.

当然,我总是可以避开该问题并强制用户实现自定义排序键.

任何想法/建议/批评/等?

python sorting null python-3.x

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

每次我对浮点数列表(具有nan值)进行排序时,都会得到一个不同的列表python

我正在尝试在python中对浮点数列表(和nan值)进行排序:

print max(list)
list.sort()
list.reverse()
for i in range(100):
    print list[i]
nan
nan
2.0803176458
nan
nan
23.1620761136
15.9680303803
15.3134388394
14.68055076
11.450492644
8.96268420227
8.15331554187
5.24420616524
3.9665322752
3.69758305442
1.08500491226
-0.227894225141
-0.254784399765
-0.866879940573
-1.21267324819
-2.21811678021
nan
nan
2.69325878444
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到的最大次数最多是不同的值,并且我的列表在打印出来时没有排序(结果在上面的代码下)

是否有人对此有何见解?

python list

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

标签 统计

python ×6

sorting ×3

comparison ×1

floating-point ×1

list ×1

math ×1

null ×1

python-3.x ×1