2013-10-12 3 views
1

Я работаю над уроками палача в Invent с Python. В течение нескольких часов я пытаюсь понять вторую и третью строки в цикле for ниже.Список нарезки в Python 2

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

Я знаю, что это список нарезка, но в то время как я знаю, что список нарезка, я не понимаю, почему оператор + используется.

Цените любого, объясняющего это.

ответ

5

Это кончик закрепите струны.

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

Это сцепить blank строку, пока я, символ в I в secretWord и blank строка из + 1 до конца.

Пример:

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

Напечатает

WelCome 

Поэтому в основном выше видели линия заменяет символ в i из blank с характером в i из secretWord.

+0

Просто удивительное объяснение! –

+0

@SocialCoder Спасибо :) – thefourtheye

1

При использовании со строками оператор + в Python объединяет строки.

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 
Смежные вопросы