Кортежи неизменны , поэтому вам нужно будет создавать новые кортежи для достижения желаемого результата.Для манипуляций на основе массива я настоятельно рекомендую вам перейти на стороннюю библиотеку, такую как NumPy:
import numpy as np
A = np.array(my_list)
A *= np.tile([200, 300], A.shape[1] // 2)
print(A)
array([[ 24.99401569, 111.55958176, 193.62900257, 166.2896812 ],
[ 37.51572967, 185.13922691, 169.64366436, 242.64471531],
[ 13.84676099, 64.92026746, 198.3550787 , 124.09249842]])
Но если вы настаиваете на использовании списка кортежей, вы можете использовать понимание списка со словаремотображение и enumerate
:
d = {0: 200, 1: 300}
res = [tuple(val * d[idx % 2] for idx, val in enumerate(tup)) for tup in my_list]
print(res)
[(24.99401569366455, 111.5595817565918, 193.62900257110596, 166.28968119621277),
(37.515729665756226, 185.13922691345215, 169.6436643600464, 242.64471530914307),
(13.846760988235474, 64.92026746273041, 198.3550786972046, 124.092498421669)]