возвращать случайное значение из списка при выборе максимального значения и иметь 2 одинаковых максимальных значения

Самый простой способ - добавить исходную строку с некоторым случайным параметром, который игнорируется на стороне сервера

<script src="mySaveFiles.json?nocache=123" ></script>

. Одним из решений было бы сгенерировать элемент сценария с помощью JavaScript и добавить текущее время например:

var el = document.createElement( script );
el.src = 'mySaveFiles.json?nocache=' + (new Date()).getTime();
document.head.appendChild( el );

Таким образом, браузер никогда не будет кэшировать JSON-файл, поскольку он выглядит как отдельный файл (из-за параметра) в каждом вызове.

1
задан Paritosh Singh 24 February 2019 в 19:01
поделиться

3 ответа

Используйте random.choice :

import random

key_list = [
    (2, 'just', 'sd'),
    (2, 'great', 'sd'),
    (1, 'just great', 'sd')
]

max_value = max([key[0] for key in key_list])
max_keys = [key for key in key_list if key[0] == max_value]

print(random.choice(max_keys))
0
ответ дан Phydeaux 24 February 2019 в 19:01
поделиться

Есть два способа сделать это:

(1) Произвольно выбрать из записей, которые соответствуют максимальному значению:

import random
key_list=[(2, 'just', 'sd'), (2, 'great', 'sd'), (1, 'just great', 'sd')]
m = max(i[0] for i in key_list)
print(random.choice([i for i in key_list if i[0] == m]))

(2) Использовать специальную функцию клавиш, которая применяет случайный тай-брейк:

print(max(key_list, key=lambda i: i[0] + random.random()))
# or
print(max(key_list, key=lambda i: (i[0], random.random())))
0
ответ дан Matthias Fripp 24 February 2019 в 19:01
поделиться

Можно сначала найти максимальное значение, а затем случайным образом выбрать среди кортежей, содержащих этот максимум:

import random

key_list=[(2, 'just', 'sd'), (2, 'great', 'sd'), (1, 'just great', 'sd')]

maxi = max(t[0] for t in key_list)
out = random.choice([t for t in key_list if t[0]==maxi])

print(out)
# (2, 'just', 'sd')
0
ответ дан Thierry Lathuille 24 February 2019 в 19:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: