我试图在python中使用整数和浮点对列表进行排序;a、 排序([1])”;而且它不起作用
我试图在python中使用整数和浮点对列表进行排序 “a.sort([1])”(我从列表的第二个元素对其进行排序),但它一直在说“TypeError:必须为key函数使用关键字参数”。我该怎么办?此外,我的列表如下所示: [“bob”、“2”、“6”、“8”、“5.3333”]尝试执行“a.sort()”。它将对您的列表进行排序。 sort无法获取1作为参数。 请在此处阅读更多信息: 如果尝试对除第一个元素之外的每个元素进行排序,请尝试执行以下操作:我试图在python中使用整数和浮点对列表进行排序;a、 排序([1])”;而且它不起作用,python,list,sorting,Python,List,Sorting,我试图在python中使用整数和浮点对列表进行排序 “a.sort([1])”(我从列表的第二个元素对其进行排序),但它一直在说“TypeError:必须为key函数使用关键字参数”。我该怎么办?此外,我的列表如下所示: [“bob”、“2”、“6”、“8”、“5.3333”]尝试执行“a.sort()”。它将对您的列表进行排序。 sort无法获取1作为参数。 请在此处阅读更多信息: 如果尝试对除第一个元素之外的每个元素进行排序,请尝试执行以下操作: a[1:] = sorted(a[1:])
a[1:] = sorted(a[1:])
很好地解释了如何正确使用sort
但是,我想指出,对数字字符串进行排序与对数值(整数和浮点等)进行排序不同。按字符串排序将使用字符排序顺序来确定顺序,例如
>>> l = ['100','1','2','99']
>>> sorted(l)
['1', '100', '2', '99']
但这可能不是你想要的;100大于2,因此应显示在列表中比2靠后的位置。您可以按数值排序,但使用键参数将列表项的字符串保留到排序()
:
这里的键是一个lambda函数,它将参数转换为浮点。sort()
例程将使用转换后的值作为排序键,而不是列表中实际包含的字符串值
要从上的第二个列表项排序,请执行以下操作:
>>> a = ["bob", "2", "6", "8", "5.3333333333333"]
>>> a[1:] = sorted(a[1:], key=lambda x: float(x))
>>> a
['bob', '2', '5.3333333333333', '6', '8']
阅读列表上的文档。排序谁是保罗?该链接链接回此问题。@PM2Ring:尝试单击该链接。它链接到这个问题的另一个答案。店主()似乎删除了他的答案,所以也许这就是你问的原因?啊!这就是原因。:)
>>> a = ["bob", "2", "6", "8", "5.3333333333333"]
>>> a[1:] = sorted(a[1:], key=lambda x: float(x))
>>> a
['bob', '2', '5.3333333333333', '6', '8']