Вы можете использовать zip
:
l1 = [1,2,3,4,5,6,7,8,9]
l2 = ['a','b','c','d','e','f','g','h','j']
result = [a for a, b in zip(l2, l1) if 3 < b < 7]
Выход:
['d', 'e', 'f']
Для получения сокращенного списка:
result, reduced = map(list, zip(*[[a, b] for a, b in zip(l2, l1) if 3 < b < 7]))
Выход:
['d', 'e', 'f'] #result
[4, 5, 6] #reduced