(Как) Создание подмассива из словарей зависит от того, существует ли определенный ключ

1
subarray = []
for dic in dics:
    if "TargetKey" in dic:
        subarray.append(dic)

Это единственное, о чем я могу думать сейчас, как объединить их в одну строку?
например. Мне нравится этот стиль: [dics["TargetKey"] for dic in dics]

Попытка избежать создания новой переменной массива, так как мне нужно использовать только один раз.

Цените для любого расширенного использования, изучая больше ярлыков в python

  • 0
    это будет более читабельным, если вы добавите пример данных в и из
Теги:
list
dictionary

2 ответа

0
Лучший ответ

Если вы настаиваете на одном лайнере:

subarray = [dic for dic in dics if "TargetKey" in dic]

Вы можете вставлять условные выражения в списки. Если вы собираетесь использовать это один раз и итерации, используйте генератор:

subarray = (dic for dic in dics if "TargetKey" in dic)
  • 0
    Это то, что я искал, спасибо!
  • 0
    Спасибо! генератор является полезным новым типом для меня!
2
subarray = list(filter(lambda x: 'TargetKey' in x,dics))
  • 1
    Только что проверил, это дает тот же результат, супер! Я изучаю ключевое слово "лямбда"
  • 0
    @cocoa Рад, что я тебе помог

Ещё вопросы

Сообщество Overcoder
Наверх
Меню