列表在Python中切片2

时间:2013-10-12 05:23:47

标签: python

我正在研究Invent with Python中的刽子手课程。几个小时我试图理解下面的for循环中的第2行和第3行。

for i in range(len(secretWord)):
    if secretWord[i] in correctLetters:
        blanks = blanks[:i] + secretWord[i] + blanks[i+1:]

我知道它是列表切片,但是虽然我知道列表切片是什么,但我不明白为什么使用+运算符。

感谢任何解释此事的人。

3 个答案:

答案 0 :(得分:5)

连接字符串。

  blanks = blanks[:i] + secretWord[i] + blanks[i+1:]

它会将blank字符串连接到i,secretWord的i处的字符和i + 1的blank字符串直到结尾。

示例:

blanks = "Welcome"
secretWord = "WELCOME"
i = 3
print blanks[:i] + secretWord[i] + blanks[i+1:]

将打印

WelCome

所以基本上上面看到的行替换了i blank处的字符和i secretWord处的字符。

答案 1 :(得分:2)

使用+,因为它通常用于 - 添加。

for i in range(len(secretWord)):循环遍历[0, 1, ... len(secretWord)]每个循环为每个项目分配i

所以在第一个循环中,blanks = blanks[:i] + secretWord[i] + blanks[i+1:]是:

blanks = blanks[:0] + secretWord[0] + blanks[0+1:]

又名:

blanks = blanks[:0] + secretWord[0] + blanks[1:]
#                                            ^ 0 + 1 == 1

如果您的意思是每个切片之间的+,那就用于字符串连接

>>> print 'hello ' + 'world'
hello world

答案 2 :(得分:1)

当与字符串一起使用时,Python中的+运算符会连接字符串。