我有一个列表 a = ['L', 'N', 'D'],我想将其中的元素顺序反转并得到 b = ['D','N','L']。我尝试了以下代码:
a = ['L', 'N', 'D']
b = sorted(a, reverse=True)
但输出结果为b= ['N', 'L', 'D']
我错在哪里了?
我有一个列表 a = ['L', 'N', 'D'],我想将其中的元素顺序反转并得到 b = ['D','N','L']。我尝试了以下代码:
a = ['L', 'N', 'D']
b = sorted(a, reverse=True)
但输出结果为b= ['N', 'L', 'D']
我错在哪里了?
您的错误在于使用 sorted
,它会按元素顺序重新排列列表,并忽略元素以前的位置。应该使用
b = a[::-1]
该代码以逆序遍历列表a
。您也可以使用
b = list(reversed(a))
尽管第一个版本更快,但需要考虑其他因素。
如果您想使用sorted()函数,可以指定索引作为排序依据:
b = sorted(a, key=a.index, reverse=True)
a.sort(reverse=True)
>>> a = ['L', 'N', 'D']
>>> a.reverse()
>>> a
['D', 'N', 'L']
你第一次差不多就做对了。试试这个:
#This will sort the list temporarily into reverse alphabetical order.
print(sorted(a, reverse=True)
#This will sort the list temporarily into reverse order.
print(sorted(a, reverse=False)
reversed
,而不是 sorted
。不需要排序。三个月后,你提供了一个额外的错误答案,回答了一个已经被解决的最简单的问题。请删除这个答案,为那些阅读并试图理解你所写内容的可怜新手们着想。 - NeilG
sorted
是一个内置函数,它使用字母表算法对你的str
元素进行排序,而不仅仅是反转你的序列。在你的内核中使用help(sorted)
查看详细信息。 - Feishi