Size: a a a

2020 November 11

T

Taya in Python
возможно я не то использую, и defaultdict тут ни при чем 🙄
источник

T

Taya in Python
нужен способ, который подставляет вместо значения '123' какой-то default
источник

w

wave.ink in Python
Taya
нужен способ, который подставляет вместо значения '123' какой-то default
Очень много фото в телеграме
источник

PA

Pavel Aksenov in Python
Taya
нужен способ, который подставляет вместо значения '123' какой-то default
т.е. тебе нужен список словарей, только если id == 123, то вместо словаря *d* нужен какой-то defaultdict?
источник

4

4rt in Python
Я так полагаю что ты используешь доступ по индексу а не по ключу потому что не знаешь, это list или dict?
Иначе, если ты однозначно знаешь что там будет dict то почему бы не использовать метод get?

Так же, предположу (потому что сейчас не могу проверить), но согласно доке collections с lambda всё должно корректно работать
Можешь попробовать передать lambda по ссылке

func = lambda x:'default_value'
dict_ = defaultdict(func)

Но сомневаюсь что это будет работать, если у тебя не работает и предыдущий пример

Что ещё? Ну посмотри версию Python и версию в которой появился defaultdict
@esultanza
источник

A

Alexander in Python
Вчера команда работала нормально)
Что может быть?
источник

T

Taya in Python
Pavel Aksenov
т.е. тебе нужен список словарей, только если id == 123, то вместо словаря *d* нужен какой-то defaultdict?
версия 3.8
полный путь к значению выглядит так:
nomer=[d for d in self.parentBody[0].get('documents') if d["id_tp_cd"] == '1000014'][0].get('ref_num','')

т.о. нужно, чтобы вся эта строка не возвращала IndexError, а какой-нибудь '' при отсутствии этого условия if d["id_tp_cd"] == '1000014'
источник

4

4rt in Python
Alexander
Вчера команда работала нормально)
Что может быть?
А вся консоль умеет скриншотиться?
источник

A

Alexander in Python
4rt
А вся консоль умеет скриншотиться?
источник

A

Alexander in Python
4rt
А вся консоль умеет скриншотиться?
источник

4

4rt in Python
А?
Pip из оболочки python?
источник

OO

Oleksiy Ovdiyenko in Python
Taya
версия 3.8
полный путь к значению выглядит так:
nomer=[d for d in self.parentBody[0].get('documents') if d["id_tp_cd"] == '1000014'][0].get('ref_num','')

т.о. нужно, чтобы вся эта строка не возвращала IndexError, а какой-нибудь '' при отсутствии этого условия if d["id_tp_cd"] == '1000014'
я предлагаю такую конструкцию, так как однострочник не влезет в пеп по длине строки

filtered_dicts = [d for d in docs if d["id_tp_cd"] == '1000014']
nomer = filtered_dicts[0].get('ref_num', '') if filtered_dicts else ""
источник

OO

Oleksiy Ovdiyenko in Python
indexerror может попасть только если список словарей docs не имеет ни одного попадания по фильтру if d["id_tp_cd"] == '1000014'
источник

A

Alexander in Python
4rt
А?
Pip из оболочки python?
В смысле?
источник

OO

Oleksiy Ovdiyenko in Python
4rt
А?
Pip из оболочки python?
это похоже на докер контейнер или сервак где-то по ssh
источник

OO

Oleksiy Ovdiyenko in Python
Alexander
Вчера команда работала нормально)
Что может быть?
проверь какая версия выбивает когда входишь в консоль питона
python3
источник

OO

Oleksiy Ovdiyenko in Python
если версия та же, 3.7, то можно ранить команду через алиас python3
источник

A

Alexander in Python
Oleksiy Ovdiyenko
если версия та же, 3.7, то можно ранить команду через алиас python3
Там 3.6.9
источник

A

Alexander in Python
А мне нужно 3.7
источник

OO

Oleksiy Ovdiyenko in Python
Alexander
А мне нужно 3.7
3.7 есть в системе. или еще не установлено?
источник