我有一个列表a = [' L',' N'' D']。我想颠倒a中元素的顺序并得到b = [' D',' N' L']。我试过这个:
a = ['L', 'N', 'D']
b = sorted(a, reverse=True)
但输出是
b= ['N', 'L', 'D']
我在哪里犯错?
答案 0 :(得分:9)
您的错误是使用sorted
,它会按元素的顺序重新排列列表,并忽略元素的位置。而是使用
b = a[::-1]
以相反的顺序遍历列表a
。你也可以使用
b = list(reversed(a))
虽然第一个版本更快。
答案 1 :(得分:3)
您也可以撤销:
>>> a = ['L', 'N', 'D']
>>> a.reverse()
>>> a
['D', 'N', 'L']
但是请注意它会更改列表,不会创建(返回)新列表。
答案 2 :(得分:1)
如果要使用sorted(),可以指定索引是要排序的键:
b = sorted(a, key=a.index, reverse=True)
答案 3 :(得分:0)
你第一次几乎是对的。试试这个:
#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)
答案 4 :(得分:0)
如果你想进行就地反向排序,你也可以这样做:
a.sort(reverse=True)