Поиск в json Совпадений python

303 просмотра
0
0 Комментариев

Доброго времени суток! Как проверить ники игроков и если найдено совпадение по нику увеличить счетчик побед\поражений, либо если нету в json такого игрока добавить его. Есть ли возможность сделать что-то вроде

if nick not in data:
  #добавляем в json
else:
  # увеличить счетчик побед\поражений

Или только перебирать все и проверять на совпадение и, если совпадения не было, добавлять отдельно?

[{"nick": "player1", "win": 0, "lose": 0},{"nick": "player2", "win": 0, "lose": 0}]


Добавить комментарий

1 Ответы

Python Опубликовано 16.12.2018
0

Вот мой вариант:

def players(array):
    pl_lst = ['player1', 'player2', 'NoSuchPlayer'] # Список игроков на проверку
    for player in pl_lst:
        Flag = False
        for i in range(len(array)):
            if array[i]['nick'] == player:
                array[i]['win'] += 1
                # array[i]['lose'] -=1
                Flag = True
        if Flag == False:
            array.append({'nick': player, 'win': 0, 'lose': 0})
    return array

Использование:

print players([{
        "nick": "player1",
        "win": 0,
        "lose": 0
    }, {
        "nick": "player2",
        "win": 0,
        "lose": 0
}])

Результат:

[{
    'nick': 'player1',
    'win': 1,
    'lose': 0
}, {
    'nick': 'player2',
    'win': 1,
    'lose': 0
}, {
    'nick': 'NoSuchPlayer',
    'win': 0,
    'lose': 0
}]

Update по просьбе автора:

def players(array):
    pl_lst = ['player1', 'NoSuchPlayer',
              'player2']  # Список игроков на проверку
    for player in pl_lst:
        Flag = False
        for i in range(len(array)):
            if player in array[i].keys():
                array[i][player][0] += 1
                array[i][player][1] -= 1
                Flag = True
        if Flag == False:
            array.append({player: [0, 0]})
    return array

Использование:

print players([{"player1": [0, 0]}, {"player2": [0, 0]}])

Результат:

[{'player1': [1, -1]},
{'player2': [1, -1]},
{'NoSuchPlayer': [0, 0]}]

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up