Я хотел бы сравнить один элемент списка за другим. Я достиг своей цели, но это не хорошо написанный код. Посмотрите мой код и дайте мне несколько советов. Кстати у меня есть несколько других вопросовPython 3: Сравнение двух элементов из того же списка
players_list = ({'player_name': 'Tom',
'player_flag': 'is_human',
'player_decision': None,
'player_points': 1}
{'player_name': 'Peter',
'player_flag': 'is_computer',
'player_decision': None,
'player_points': 2}
{'player_name': 'John',
'player_flag': 'is_computer',
'player_decision': None,
'player_points': 0.5}
{'player_name': 'Greg',
'player_flag': 'is_computer',
'player_decision': None,
'player_points': 2}
)
players_list = sorted(players_list, key = lambda k: k['player_points'], reverse = True)) #(1)
iterator = 0 #(2)
while players_list[iterator]['player_points'] == players_list[iterator + 1]['player_points']:
iterator += 1
print(' >> The Winner Is...', end = ' ')
if iterator == 0:
print(players_list[0]['player_name'].upper(), '!!!') #(3)
elif iterator > 0:
print('There Is a Draw Between ', end = '')
for j in range (0, iterator + 1):
print(players_list[j]['player_name'], end = ', ') # (4))
print() # (5)
(1): Это самый лучший способ в этом случае, чтобы отсортировать мой список по значениям словарей?
(2): Это моя идея сравнить, чтобы решить эту проблему. Не могли бы вы высказать свое мнение и, если понадобится, предложить лучшее решение, пожалуйста?
(3): Какой способ печати в этом случае был бы самым «питоническим»?
print(players_list[0]['player_name'].upper(), '!!!') # 1
print(%s!!! (players_list[0]['player_name'].upper())) # 2
print({player_name}!!!.format(player_name = players_list[0] ['player_name']).upper()) # 3
(4): Как отобразить список игроков в одной строке без ',' в конце?
print(players_list[j]['player_name'], end = ', ')
>> Peter, Greg, Tom, John,
(5) Я использовал пустую печать() для отображения «/ n» после отображения игроков в одной строке. Есть ли лучшее решение?
Большое спасибо
Это будет лучше подходит для [Обзор кода] (http://codereview.stackexchange.com/) – Mel
Я собираюсь сделать это, когда у меня будет весь готовый код. Это последняя проблема, которую я знаю, что я должен исправить – mathsicist
Пустой 'print()'? Это не проблема, это абсолютно правильный код. Я не уверен, что вы найдете лучший способ распечатать пустую строку. – Mel