Самый простой способ - добавить исходную строку с некоторым случайным параметром, который игнорируется на стороне сервера
<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-файл, поскольку он выглядит как отдельный файл (из-за параметра) в каждом вызове.
Используйте 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))
Есть два способа сделать это:
(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())))
Можно сначала найти максимальное значение, а затем случайным образом выбрать среди кортежей, содержащих этот максимум:
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')