Циклическое вращение в Python [дубликат]

Начиная с Python3 вам больше не нужно открывать devnull и вызывать subprocess.DEVNULL .

Ваш код будет обновлен как таковой:

import subprocess
text = 'Hello World.'
print text
subprocess.call(['espeak', text], stderr=subprocess.DEVNULL)

0
задан Martijn Pieters 23 February 2019 в 16:44
поделиться

1 ответ

Проблема в том, что вы просто назначаете новое имя переменной в свой список new, когда делаете old = new. Поэтому любые изменения, которые вы сейчас делаете в new, также будут отражены в old, потому что вы просто создали новый указатель на ту же ячейку памяти в списке new. Вы должны создать копию списка, чтобы не изменять исходный список. Один из способов сделать это - old = new.copy()

def solution(A , K):
     old = A
     new = [0]*len(A)
     for i in range(K):
         new[0]=old[-1]
         new[1:] = old[:-1]
         old = new.copy() # This was the problematic line
     return new

solution([1,2,3,4,5], 2)
# [4, 5, 1, 2, 3]

solution([1,2,3,4,5], 3)
# [3, 4, 5, 1, 2]
0
ответ дан Sheldore 23 February 2019 в 16:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: