在本教程中,我们展示了如何反转 Python 序列。
当我们撤消项目时,我们会更改其顺序。 请注意,不应将反转与降序排序混淆。
Python 列表具有reverse()函数。 [::-1] 切片操作可反转 Python 序列。 reversed()内置函数返回反转迭代器。 内置reversed()调用对象的__reversed__()魔术方法以实现反转迭代。
Python 反转列表
在第一个示例中,我们使用reverse()方法和[::-1]运算符反转 Python 列表。
reverse_list.py
#!/usr/bin/env python3nums = [2, 7, 8, 9, 1, 0]nums.reverse()print(nums)rev_nums = nums[::-1]print(rev_nums)
reverse()方法在适当的位置反转列表。 nums[::-1]创建一个列表的新副本,其中元素被反转。
$ ./reverse_list.py[0, 1, 9, 8, 7, 2]
这是输出。
Python reversed函数
reversed()内置函数返回反转迭代器。
reversed_fun.py
#!/usr/bin/env python3words = ['forest', 'wood', 'sky', 'rock']for word in reversed(words):print(word)word = 'forest'for e in reversed(word):print(e, end=' ')print()for e in reversed(range(1, 10, 2)):print(e)
在示例中,我们在列表,单词和范围上使用reversed()函数。
$ ./reversed_fun.pyrockskywoodforestt s e r o f97531
这是输出。
Python 自定义反转字符串函数
在下面的示例中,我们创建一个自定义字符串反转函数。
custom_string_reverse.py
#!/usr/bin/env python3def reverse_string(word):rev = ''n = len(word)while n > 0:n -= 1rev += word[n]return revword = 'forest'print(reverse_string('forest'))
请注意,这只是出于演示目的; 这个实现很慢。
def reverse_string(word):rev = ''n = len(word)while n > 0:n -= 1rev += word[n]return rev
在函数中,我们使用while循环以相反的顺序构建新字符串。
Python __reversed__方法
__reversed__()魔术方法实现应返回一个新的迭代器对象,该对象以相反的顺序遍历容器中的所有对象。
reversed_magic.py
#!/usr/bin/env python3class Vowels(object):def __init__(self):self.vowels = ['a', 'e', 'i', 'o', 'u', 'y']def __len__(self):return len(self.vowels)def __getitem__(self, e):return self.vowels[e]def __reversed__(self):for e in self.vowels[::-1]:yield elemvowels = Vowels()print('normal order:')for vowel in vowels:print(vowel, end=' ')print()print('reversed order:')for vowel in reversed(vowels):print(vowel, end=' ')print()
在示例中,我们在Vowels对象中实现__reversed__()方法。
$ ./reversed_magic.pynormal order:a e i o u yreversed order:y u o i e a
这是输出。
在本教程中,我们已经在 Python 中完成了反转操作。
您可能也对以下相关教程感兴趣: Python 教程, Python 集教程, Python for循环, Python 列表推导, 和 Python 映射教程。
