首页 > 解决方案 > 为什么 Python 和 node.js 对两个数组进行不同的排序,但单一元素在两种语言中的工作方式相同?

问题描述

您好,我有一个由 py​​thon 脚本和 pandas 排序的 CSV,我正在检查 node.js,但排序方法的工作方式不同:

数组如下:

> a
[ 1, 1, '7-Zip', 'IgorPavlov' ]
> b
[ 1, 1, '7-Zip ZS', 'Igor Pavlov, Tino Reichardt' ]

并且数组中每个元素的python和节点代码中的响应是相同的

节点.js

> a[0] <= b[0]
true
> a[1] <= b[1]
true
> a[2] <= b[2]
true
> a[3] <= b[3]
false

Python

>>> a[0] <= b[0]
True
>>> a[1] <= b[1]
True
>>> a[2] <= b[2]
True
>>> a[3] <= b[3]
False

但是数组排序的结果是不同的:

节点.js

> [a,b].sort()
[
  [ 1, 1, '7-Zip ZS', 'Igor Pavlov, Tino Reichardt' ],
  [ 1, 1, '7-Zip', 'IgorPavlov' ]
]

Python

sorted([a,b])
> [[1, 1, '7-Zip', 'IgorPavlov'], [1, 1, '7-Zip ZS', 'Igor Pavlov, Tino Reichardt']]

问题是为什么 node.js 或 python 有不同的行为,我该如何解决这个问题才能在两种语言中获得相同的结果,pandas 的方式是一样的。

谢谢。

标签: javascriptpythonnode.jspandas

解决方案


推荐阅读