Хорошо, я уверен, что есть очень простой способ сделать это, но я ржавый в python, и я не могу разобрать питонический способ сделать это.Python, создайте новый список на основе условия, применяемого к существующему списку одинаковой длины
У меня есть список, представляющий часы дня:
import numpy as np
hourOfDay = np.mod(range(0, 100), 24)
Тогда я хочу, чтобы создать новый список, который большее значение 0.4
, когда час между 7
и 22
и 0.2
иначе ,
Есть несколько связанных должностей here и here, но они не совсем то, что я хочу (они заканчиваются коротким списком, я хочу список одинаковой длины).
Предполагая, что мне нужно использовать список понимание Я попытался это:
newList = [0.4 for hour in hourOfDay if hour <= 7 or hour >= 22 else 0.2]
Почти идеальный; 'for' идет в конце списка comp, условия идут первыми:' newList = [0.4 if hour <= 7 or hour> = 22 else 0.2 для часа в hourOfDay] ' –
Спасибо @AndrasDeak! Стыдно, что я не попал туда сам; но, по крайней мере, это будет здесь для меня, чтобы найти следующий раз, когда я забываю, как работает python. – kabdulla