将作业转换为dict

Alg*_*bra -1 python

我有很多很难分配的作业:

definition = ['basename', 'dirname', 'supports_unicode_filenames']
condition = ['isabs', 'isdir', 'isfile', 'islink', 'ismount']
.
.
.
Run Code Online (Sandbox Code Playgroud)

打算将它们转换为dict,避免重复输入:

{'definition': ['basename', 'dirname', 'supports_unicode_filenames'],
 'condition': ['isabs', 'isdir', 'isfile', 'islink', 'ismount'] ...}
Run Code Online (Sandbox Code Playgroud)

我试着在课堂上封装它们.

class OsPath:
    definition = ['basename', 'dirname', 'supports_unicode_filenames']
    condition = ['isabs', 'isdir', 'isfile', 'islink', 'ismount']
Run Code Online (Sandbox Code Playgroud)

在控制台上工作

In [125]: dt = dict(vars(OsPath))
In [127]: {i:dt[i] for i in dt if not i.startswith('__')}
Out[127]:
{'condition': ['isabs', 'isdir', 'isfile', 'islink', 'ismount'],
 'definition': ['basename', 'dirname', 'supports_unicode_filenames']}
Run Code Online (Sandbox Code Playgroud)

怎么做快捷方式?

Dev*_*ark 5

你可以做:

definition = ['basename', 'dirname', 'supports_unicode_filenames']
condition = ['isabs', 'isdir', 'isfile', 'islink', 'ismount']
d = {'definition': definition, 'condition': condition }
Run Code Online (Sandbox Code Playgroud)

请注意,您应该避免使用变量名称dict,它是一个内置对象.

但说实话,如果你大规模地这样做,你所要做的并不是好的做法.您应该重新考虑对象的设计.