Я не знаю, почему у вас есть строка чисел, но вот рабочий пример списка целых чисел, который, на мой взгляд, имеет больше смысла:
import random
weights = [150000, 150000, 50, 150000, 150000, 800, 130000, 130000, 25000, 100000, 100000, 100000, 10000]
total_weight = sum(weights)
l = list(range(13))
tmp_weight = 0
new_weight = 1
for i in range(5):
number = random.choice(l)
print(number)
new_weight *= weights[number]/(total_weight-tmp_weight)
tmp_weight += weights[number]
l.remove(number)
print(new_weight)
Я не уверен, что логикакак вы хотите, потому что ваш пример не был понятен.
Вы можете создавать кортежи с (числом, весом), а также. Но сначала вы должны уточнить свой вопрос.
Редактировать после комментария: для определенного порядка чисел он должен работать следующим образом
perm = [1,2,3,4]
weights = [150000, 150000, 50, 150000, 150000, 800, 130000, 130000, 25000, 100000, 100000, 100000, 10000]
total_weight = sum(weights)
tmp_weight = 0
new_weight = 1
for number in perm:
new_weight *= weights[number]/(total_weight-tmp_weight)
tmp_weight += weights[number]
print(new_weight)