use*_*918 2 python sorting tuples python-3.x
我试图通过数字的值对此元组进行排序,以便按降序重新排列:
l =[('orange', '3.2'), ('apple', '30.2'), ('pear', '4.5')]
Run Code Online (Sandbox Code Playgroud)
如:
l2 =[('apple', '30.2'), ('pear', '4.5'), ('orange', '3.2')]
Run Code Online (Sandbox Code Playgroud)
我试图用它来排序它:
l2 = ((k,sorted(l2), key=lambda x: float(x[1]), reverse=True)))
[value for pair in l2 for value in pair]
Run Code Online (Sandbox Code Playgroud)
但我收到错误消息:
TypeError: float() argument must be a string or a number, not 'tuple'
Run Code Online (Sandbox Code Playgroud)
我如何纠正这一点,以便我可以表明我想按每对中的数字排序?Python语法仍然让我很困惑,因为我对它很新.任何帮助,将不胜感激.
Mar*_*ers 10
你搞砸了语法; 你快到了.这有效:
l2 = sorted(l, key=lambda x: float(x[1]), reverse=True)
Run Code Online (Sandbox Code Playgroud)
例如,调用sorted()函数,并传入列表作为第一个参数排序.另外两个参数是关键字参数(key,和reverse).
演示:
>>> l = [('orange', '3.2'), ('apple', '30.2'), ('pear', '4.5')]
>>> sorted(l, key=lambda x: float(x[1]), reverse=True)
[('apple', '30.2'), ('pear', '4.5'), ('orange', '3.2')]
Run Code Online (Sandbox Code Playgroud)
您还可以就地对列表进行排序:
l.sort(key=lambda x: float(x[1]), reverse=True)
Run Code Online (Sandbox Code Playgroud)
使用相同的两个关键字参数.
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |