Используйте zip () для объединения точек данных обоих списков в кортежи, используйте выражение генератора для получения всех положительных точек данных из списка из двух кортежей, используйте zip () , чтобы разделить разбитый кортеж из 2 кортежей обратно на кортежи и использовать карту со списком, чтобы получить из нее списки:
temp = [83, 384, 324.6, -234, -65, -65.838, 23, -85, -73.543, 12.345]
time = [0.0, 3.345, 4.785, 5.31, 6.67, 9.37, 10.54, 11.36, 12.554, 13.445]
p_temp, p_time = map(list,zip( *(a for a in zip(temp,time) if a[0]>0) ))
print(p_temp)
print(p_time)
Вывод:
[83, 384, 324.6, 23, 12.345]
[0.0, 3.345, 4.785, 10.54, 13.445]
Вы можете найти объяснения для zip()
, map()
и list()
здесь: https://docs.python.org/3/library/functions.html
Пошаговое выполнение операций преобразует ваши данные следующим образом:
tmp1 = list(zip(temp,time))
tmp2 = list((a for a in tmp1 if a[0]>0))
tmp3 = list(zip( *tmp2 ))
print(tmp1)
print(tmp2)
print(tmp3)
print(*tmp3)
Вывод:
# list(zip(temp,time))
[(83, 0.0), (384, 3.345), (324.6, 4.785), (-234, 5.31), (-65, 6.67), (-65.838, 9.37),
(23, 10.54), (-85, 11.36), (-73.543, 12.554), (12.345, 13.445)]
# list((a for a in tmp1 if a[0]>0))
[(83, 0.0), (384, 3.345), (324.6, 4.785), (23, 10.54), (12.345, 13.445)]
# list(zip( *tmp2 ))
[(83, 384, 324.6, 23, 12.345), (0.0, 3.345, 4.785, 10.54, 13.445)]
# *list(zip( *tmp2 ))
(83, 384, 324.6, 23, 12.345) (0.0, 3.345, 4.785, 10.54, 13.445)