Python中这两种数据结构有什么不同?为什么我不能对它们进行排序?

2024-04-25 12:01:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我这里有两个单独的清单,不太明白它们之间的区别。最后,我想对它们进行排序,但不知道要使用哪种数据类型。两者都不起作用。你知道吗

mylist = [('Andrew','10')('Jim',"20"),("Sarah","30"),("Jim","23"),("Andrew","54")]
mylist1 = [['Andrew','10']['Jim',"20"],["Sarah","30"],["Jim","23"],["Andrew","54"]]
sorted(mylist)
sorted(mylist1)
print mylist
print mylist1

Tags: 排序数据类型sortedprint区别andrewjimmylist
2条回答

您输入了一个错误,省略了第一个和第二个元素之间的昏迷:

mylist = [('Andrew','10')('Jim',"20")

Python将其解释为对('Andrew','10')的调用,但是tuple当然是不可调用的,因此会出现错误。你知道吗

此外,如果您想对列表进行适当排序,则更希望使用mylist.sort()sorted()内置函数返回一个副本,因此如果您想使用它,应该使用:

sortedList = sorted(myList)

列表之间的区别在于,一个是列表列表列表,而另一个是元组列表。有关详细信息,请参见:What's the difference between lists and tuples?。在这种情况下,他们之间没有太大的区别。你知道吗

要按名称和数字排序,只需使用mylist.sort()。你知道吗

要仅按数字排序,可以使用mylist.sort(key = lambda item: item[1])

相关问题 更多 >