推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
JasonLaw
V2EX  ›  Python

s 为'eccer', s[3:0:-1]为'ecc',而 s[3:-1:-1]却是'',而不是我期望的'ecce'?

  •  
  •   JasonLaw · Jun 24, 2023 · 2046 views
    This topic created in 1201 days ago, the information mentioned may be changed or developed.

    难道是 s[3:-1:-1]等价于 s[3:4:-1]?所以结果为''?


    关联的 LeetCode problem: Valid Palindrome II - LeetCode。

    我的出现错误的 solution 。

    class Solution:
        def validPalindrome(self, s: str) -> bool:
            l, r = 0, len(s) - 1
            while l < r:
                if s[l] != s[r]:
                    return s[l + 1:r + 1] == s[r:l:-1] or s[l:r] == s[r - 1:l - 1:-1]
                l += 1
                r -= 1
            return True
    
    Supplement 1  ·  Jun 25, 2023

    Bing AI的回复有点帮助。

    相关的链接:python - Understanding negative steps in list slicing - Stack Overflow

    7 replies  •  2023-06-25 11:20:50 +08:00
    luozic
        2
    luozic  
       Jun 24, 2023   ❤️ 1
    +---+---+---+---+---+---+
    | P | y | t | h | o | n |
    +---+---+---+---+---+---+
    0 1 2 3 4 5
    -6 -5 -4 -3 -2 -1
    mkroen
        3
    mkroen  
       Jun 25, 2023
    s[3::-1]
    JasonLaw
        4
    JasonLaw  
    OP
       Jun 25, 2023
    @luozic #2 按照正常理解的话,我会觉得 s[3:-1:-1]的结果是'e'+'c'+'c'+'e',不包含'r',因为它是 stop index 所在的 char 。
    JasonLaw
        5
    JasonLaw  
    OP
       Jun 25, 2023
    @mkroen #3 我知道这样子可以,但是这样子我的代码就会变得复杂。我需要判断 stop 是否为-1 ,如果是-1 的话,就需要使用 s[3::-1]替代 s[3:-1:-1]。
    zizon
        6
    zizon  
       Jun 25, 2023
    s[3:-1:-1]
    -> s[3:4:-1]
    -> s[4:3:1]
    -> s[4:3] , 4 > 3
    evemoo
        7
    evemoo  
       Jun 25, 2023
    左闭右开 + 切片的顺序 = 答案
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   934 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 23:21 · PVG 07:21 · LAX 16:21 · JFK 19:21
    ♥ Do have faith in what you're doing.