作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
输入
a= (92, 93, 94, 95)
b= [0.76, 0.46, 0.56,0.64]
required是list a根据list b降序排序
a= [92, 95, 94, 93]
b= [0.76, 0.64, 0.56, 0.46]
我用过
a,b = zip(*sorted(zip(a,b), key=operator.itemgetter(0), reverse=True))
我试着用它升序排序,然后尝试用另一个列表倒序写。
错误是:
key=operator.itemgetter(0), reverse=True))
NameError: name 'operator' is not defined
有什么建议吗?
最佳答案
您看到的错误是因为您需要导入operator
模块。即使这样做也不能解决问题。
相反,您可以这样做:
b, a = zip(*sorted(zip(b,a), reverse=True))
对于您的数据:
>>> a = [92, 93, 94, 95]
>>> b = [0.76, 0.46, 0.56,0.64]
>>> b, a = zip(*sorted(zip(b,a), reverse=True))
>>> a
(92, 95, 94, 93)
>>> b
(0.76, 0.64, 0.56, 0.46)
这为您提供了元组。如果您真的想要/需要列表:
>>> a = [92, 93, 94, 95]
>>> b = [0.76, 0.46, 0.56,0.64]
>>> b, a = (list(x) for x in zip(*sorted(zip(b,a), reverse=True)))
>>> a
[92, 95, 94, 93]
>>> b
[0.76, 0.64, 0.56, 0.46]
关于python - 根据python的结果降序排列一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36622977/
我是一名优秀的程序员,十分优秀!