python之序列反转
方式1:.reverse()
a = [1, 2, 3, 4, 5]
print(a.reverse()) # None,函数原地反转,不具备排序功能,而且没有返回值
print(a) # [5, 4, 3, 2, 1]
方式2:reversed
a = [1, 2, 3, 4, 5]
print(reversed(a)) # <list_reverseiterator object at 0x000001CDB7FE1BE0>
print(list(reversed(a))) # [5, 4, 3, 2, 1]
方式3:[::-1]
a = [1, 2, 3, 4, 5]
print(a[::-1]) # [5, 4, 3, 2, 1]
注:reverse是列表list类下的函数,只能给列表用,reversed是python内置函数,可以给字符串、字典、列表等使用。
使用reverse反转字符串
b = 'abcdefg'
print(b.reverse())
报错:AttributeError: ‘str’ object has no attribute ‘reverse’
使用reversed反转字符串
b = 'abcdefg'
print(reversed(b)) # <reversed object at 0x0000026A937A10D0>
print(list(reversed(b))) # ['g', 'f', 'e', 'd', 'c', 'b', 'a']
print((list(reversed(b))))
使用[::-1]反转字符串
b = 'abcdefg'
print(b[::-1]) # gfedcba
使用reversed反转元组
a = (1, 2, 3, 4, 5)
print(reversed(a)) # <reversed object at 0x000002E7504C1BE0>
print(list(reversed(a))) # [5, 4, 3, 2, 1]
使用[::-1]反转元组
a = (1, 2, 3, 4, 5)
print(a[::-1]) # (5, 4, 3, 2, 1)
不可以对集合使用reversed
a = {1, 2, 3, 4, 5}
print(reversed(a))
报错TypeError: ‘set’ object is not reversible
也不可以对集合使用[::-1]
a = {1, 2, 3, 4, 5}
print(a[::-1])
报错TypeError: ‘set’ object is not subscriptable
对字典使用reversed
c = {'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4, 'key5': 5}
print(reversed(c)) # <reversed object at 0x0000026A937A10D0>
print(list(reversed(c))) # ['key5', 'key4', 'key3', 'key2', 'key1']
对键进行了反转,可以根据反转后的键去取值
不可以对字典使用[::-1]
c = {'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4, 'key5': 5}
print(c[::-1])
报错TypeError: unhashable type: ‘slice’