Есть ли возможность использовать "for l oop" для доступа к разным спискам? - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь использовать a для l oop, чтобы внести следующие изменения в разные списки:

# Variable that indicates who scored a goal. Can either take value a or b.
goal = "a"

# Initiate points counter
points_a = [0]
points_b = [0]

players = ["a", "b"]

for x in players:
    if goal == x:
        points_x[0] += 1

print(points_a)

Я хотел бы обновить «счетчик очков» в зависимости от того, принимает ли цель значение a или b, но я изо всех сил пытаюсь найти способ сообщить Python, что я пытаюсь получить доступ к спискам в l oop. Мой желаемый результат в этом случае, когда для цели установлено значение «a», будет «[1]». В настоящий момент я получаю сообщение об ошибке «NameError: имя 'points_x' не определено». Есть ли способ сделать это в Python?

Спасибо за любые подсказки!

Мануэль

Ответы [ 2 ]

2 голосов
/ 14 июля 2020

Вы можете использовать простой словарь вместо двух переменных:

# Variable that indicates who scored a goal. Can either take value a or b.
goal = "a"

# Initiate points counter
player_points = { "a": 0, "b": 0 }

# no need for loop
player_points[goal] += 1

print(player_points["a"])
0 голосов
/ 14 июля 2020

По сути, вам нужно сопоставить игрока и его очки. Вы можете сделать это через словарь:

goal = "a"
player_dict = {
    "a":[0],
    "b":[0]
}

player_dict[goal][0] += 1 

Я также не уверен, почему вы используете список вместо одного целого числа для хранения точек.

...