zoukankan      html  css  js  c++  java
  • Python 反转

    当我们撤消项目时,我们会更改其顺序。 请注意,不应将反转与降序排序混淆。

    Python 列表具有reverse()函数。 [::-1] slice 操作可反转 Python 序列。 reversed()内置函数返回反转迭代器。 内置reversed()调用对象的__reversed__()魔术方法以实现反转迭代。

    Python 反转列表

    在第一个示例中,我们使用reverse()方法和[::-1]运算符反转 Python 列表。

    reverse_list.py
    
    #!/usr/bin/env python3
    
    nums = [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 python3
    
    words = ['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.py
    rock
    sky
    wood
    forest
    t s e r o f
    9
    7
    5
    3
    1
    

      

    这是输出。

    Python 自定义反转字符串函数

    在下面的示例中,我们创建一个自定义字符串反转函数。

    custom_string_reverse.py
    
    #!/usr/bin/env python3
    
    def reverse_string(word):
    
        rev = ''
        n = len(word)
    
        while n > 0:
            n -= 1                 
            rev += word[n] 
        return rev
    
    word = 'forest'
    
    print(reverse_string('forest'))
    

      

    请注意,这只是出于演示目的; 这个实现很慢。

    def reverse_string(word):
    
        rev = ''
        n = len(word)
    
        while n > 0:
            n -= 1                 
            rev += word[n] 
        return rev
    

      

    在函数中,我们使用 while 循环以相反的顺序构建新字符串。

    Python __reversed__方法

    __reversed__()魔术方法实现应返回一个新的迭代器对象,该对象以相反的顺序遍历容器中的所有对象。

    reversed_magic.py
    
    #!/usr/bin/env python3
    
    class 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 elem        
    
    vowels = 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.py
    normal order:
    a e i o u y
    reversed order:
    y u o i e a
    

      

    这是输出。

  • 相关阅读:
    C++ 派生类对象的构造与析构过程
    C++ lvalue(左值)和rvalue(右值)
    enum class 用法
    gcc 编译选项
    using用法总结
    const用法及与constexpr区别总结
    Lanbda表达式
    CMake 用法总结(转载)
    ElasticSearch学习文档
    Maven学习笔记
  • 原文地址:https://www.cnblogs.com/daniumiqi/p/12172472.html
Copyright © 2011-2022 走看看