[:]
- это нарезка, и ее действие зависит от типа поездки. Если trip является списком, эта строка создаст мелкую копию списка. Для объекта типа tuple или str он ничего не будет делать (строка будет делать то же самое без [:]), а для (скажем) NumPy массива она создаст новое представление для тех же данных.
Вместо этого вы можете использовать следующее:
trip = [
{"name": "name1", "trip_block__": 10},
{"name": "name2", "trip_block_": 5},
{"name": "name3", "trip_block": 7}
]
res1 = next(item for item in trip if 'trip_block' in item.keys())
print(res1)
res2 = list(filter(lambda trip_block: 'trip_block' in trip_block.keys(), trip))
print(res2)
Первый метод - это поиск dict
с желаемым ключом.
Второй - фильтрация dict
которые состоят из желаемого ключа