@kyklaed

Как увеличить значение и уменьшить его на необходимо число?

Всем привет!

Подскажите метод работы со списком, мне необходимо прибавить например единицу к силе ["сила",0+1] -> ["сила",1]
и так что бы можно было вычесть!

stats = [["сила",0],["здоровье", 1],["мудрость",0],["ловкость", 0]]


Не смог найти способ добавить, метод append не подходит или я не нашел тот способ что бы с помощью него добавить.

stats[0].append([[0],[1]+[stat1]])
stats[1].append([[1],[1]+[stat2]])


Тут я просто добавляю новый кусок, а как добавить именно к тому же, как к нему обратиться
  • Вопрос задан
  • 2466 просмотров
Решения вопроса 1
aRegius
@aRegius
Python Enthusiast
Привет, Вадим!
Ну, самый простой вариант - обращаться по индексу:
>>> stats = [["сила",0],["здоровье", 1],["мудрость",0],["ловкость", 0]]
>>> stats[0][1] += 1
>>> stats
[['сила', 1], ['здоровье', 1], ['мудрость', 0], ['ловкость', 0]]
>>> stats[1][1] += 5
>>> stats
[['сила', 1], ['здоровье', 6], ['мудрость', 0], ['ловкость', 0]]
>>> stats[1][1] -= 2
>>> stats
[['сила', 1], ['здоровье', 4], ['мудрость', 0], ['ловкость', 0]]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Hrabryi
Мне кажется удобнее было бы хранить данный набор в словаре. Тогда обращение к нему можно делать по ключу, передавая в значение +-1:
stats = {"сила":0,"здоровье":1,"мудрость":0,"ловкость":0}
stats["сила"] += 1
stats["сила"] -= 1

Если цель именно со списком, тогда можно написать маленькую функцию, по добавлению +1 к определенному навыку, например так:,
stats = [["сила",0],["здоровье", 1],["мудрость",0],["ловкость", 0]]

def add_one(skill):
    for i in stats:
        if i[0]==skill:
            i[1] += 1

add_one('сила')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы