Birgit Dulanto Birgit Dulanto - 1 month ago 10
Python Question

multiply a list by a number until all numbers in list are >=1

I want to multiply

y_list
by a number until all numbers in list are
>=1
,
and then just print the new list (without Numpy if it is possible).

Maybe multiply
y_list
as a row and numbers in
i_list=[range(1,20)]
as a column. and then stop when all numbers are bigger than 1.

For example:
y_list= [1.0, 0.5669650111879195]
to
until y_list=[2.0, 1.12.. ]


y_list= [1.0, 0.5669650111879195]
i=0
while all(y <= 1 for y in y_list):
i+=1
if all(y<= 1 for y in y_list):
break
print(i)

Answer

If you do need to multiply it by a number (let's assume it to be 1.3) until all the elements are larger than one, the following is the way to go:

y_list = [1.0, 0.1, 0.2, 0.01]
k = 1.3
while any(y<=1 for y in y_list):
    y_list = [y*k for y in y_list]

>>> print(y_list)
[112.45540695195751, 11.245540695195746, 22.491081390391493, 1.1245540695195746]