Я занимаюсь программированием на Python и мне нравятся словари на Python. Мне интересно, есть ли компактный способ доступа к элементам словаря внутри самого словаря? Например, см. Следующий код:
MyDict = {'n':1, 's':2}
MyDict.update({'x' : MyDict['n']*2})
Часто имена словаря длинные, поэтому было бы очень удобно иметь что-то вроде:
MyDict.update({'x' : self['n']*2})
Есть идеи, есть ли такая компактная форма?
Кстати, самый простой способ:
d = {'n':1, 's':2}
d['x']=d['n']*2
А если нужен self
, просто переименуйте d
в self
Тогда не нужны длинные имена, просто не делайте длинные имена
Или способ:
foofoofooblahblahbarbar = {'n':1, 's':2}
d=foofoofooblahblahbarbar
d['x']=d['n']*2
...
В конце концов, когда ты это сделаешь:
print(foofoofooblahblahbarbar)
он будет такой же как d
Нет, нет. Вы можете заранее задать псевдоним словарю, если хотите сократить конкретную строку;
dct = my_dict_with_a_very_long_name_i_do_not_want_to_keep_writing
, тогдаdct.update({'x': dct['n'] * 2})
. Но аргументupdate
оценивается как до вызывается метод, это нет"внутри самого словаря".