Могу ли я увеличить 2 переменные на одно и то же значение за раз в одной строке кода в python3 - PullRequest
0 голосов
/ 03 августа 2020

Я начал учить python недавно. Это мой код python3. если условие удовлетворяет, мне нужно увеличить значение обеих переменных на единицу. Как я могу сделать это одной строкой? Этот код работает нормально. Могу ли я сделать этот код коротким и понятным в одну строку? Заранее спасибо.

//This code works fine
if(letters[index] == letters[index+1]):
    count += 1
    index += 1

Можно ли сделать это в 1 строку. Я имею в виду что-то вроде этого [count,index]+=1 (это не работает)

Ответы [ 4 ]

2 голосов
/ 03 августа 2020

Можно попробовать вот так

count, index = (count+1,index+1) if letters[index] == letters[index+1] else (count,index)
2 голосов
/ 03 августа 2020

Еще немного работы, но

def increment(x):
    return x + 1  

А потом

 a, b, c = map(increment,[a, b, c])
2 голосов
/ 03 августа 2020

Просто для удовольствия - совершенно излишне, но вы можете сделать:

class C:
    def __init__(self):
        self.count = 0
        self.index = 0
    
    # behaviour for += operator
    def __iadd__(self, inc: int):
        assert isinstance(inc, int)
        self.count += inc
        self.index += inc
        return self

и использовать его как:

c = C()
c += 1
# c.count and c.index are both 1
c += 10
# c.count and c.index are both 11
2 голосов
/ 03 августа 2020

вы можете сделать

if(letters[index] == letters[index+1]):
    count,index=count+1,index+1

или

if(letters[index] == letters[index+1]):
    count+=1;index+=1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...