python 3.5.1使用2个排序和运算符模块fn对多元元组进行排序
我正在学习3.5.1 Python和基本元组。我用一个额外的变量扩展了基本元组数组,我想按名称和等级对程序进行排序 我的代码是:python 3.5.1使用2个排序和运算符模块fn对多元元组进行排序,python,list,sorting,python-3.x,Python,List,Sorting,Python 3.x,我正在学习3.5.1 Python和基本元组。我用一个额外的变量扩展了基本元组数组,我想按名称和等级对程序进行排序 我的代码是: l1 = [('lee', 'a', 5, 38), ('kim', 'b', 3, 28), ('jung', 'b', 10, 36)] sortedl1 = l1.sort(l1, key=itemgetter(0,1)) print ('sorted by name: ', sortedl1) 当我运行代码时,我得到一个编译器错误: sortedl1 =
l1 = [('lee', 'a', 5, 38), ('kim', 'b', 3, 28), ('jung', 'b', 10, 36)]
sortedl1 = l1.sort(l1, key=itemgetter(0,1))
print ('sorted by name: ', sortedl1)
当我运行代码时,我得到一个编译器错误:
sortedl1 = l1.sort(l1, key=itemgetter(0,1))
TypeError: Argument given by name ('key') and position (1)
任何帮助都将不胜感激。谢谢。我想你是想用:
因为
- 与排序后的不同,不返回,只对列表进行适当排序
- 不接受位置参数
l1
从排序(l1,key=itemgetter(0,1))
中删除,会发生什么情况?我似乎得到了“无”作为响应。。。。如果我正确阅读我的代码,并对其进行itemgetter测试(1),它至少应该会使用'a->b'@KevingGuan的排序复制l1,但OP试图打印sortedl1
(函数的返回值)@Delgan,IMO,使用itemgetter()
在这里没有问题。@Delgan:我认为你描述的问题不是问题。@falsetru:我知道,我的意思是关于你说的第二个问题:list.sort
不接受位置参数。但是,list.sort
也接受key
参数。@KevinGuan,它应该是关键字参数,而不是位置参数。试试你自己:)
sortedl1 = sorted(l1, key=itemgetter(0,1))