Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将作业转换为dict_Python - Fatal编程技术网

Python 将作业转换为dict

Python 将作业转换为dict,python,Python,我有很多硬输入的作业: definition = ['basename', 'dirname', 'supports_unicode_filenames'] condition = ['isabs', 'isdir', 'isfile', 'islink', 'ismount'] . . . 打算将其转换为dict,避免重复键入: {'definition': ['basename', 'dirname', 'supports_unicode_filenames'], 'condition'

我有很多硬输入的作业:

definition = ['basename', 'dirname', 'supports_unicode_filenames']
condition = ['isabs', 'isdir', 'isfile', 'islink', 'ismount']
.
.
.
打算将其转换为dict,避免重复键入:

{'definition': ['basename', 'dirname', 'supports_unicode_filenames'],
 'condition': ['isabs', 'isdir', 'isfile', 'islink', 'ismount'] ...}
我试图在课堂上把它们封装起来

class OsPath:
    definition = ['basename', 'dirname', 'supports_unicode_filenames']
    condition = ['isabs', 'isdir', 'isfile', 'islink', 'ismount']
在控制台上工作

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']}
如何在快捷方式中执行此操作?

您可以执行以下操作:

definition = ['basename', 'dirname', 'supports_unicode_filenames']
condition = ['isabs', 'isdir', 'isfile', 'islink', 'ismount']
d = {'definition': definition, 'condition': condition }
请注意,应避免使用变量名
dict
,这是一个内置对象


但老实说,如果你大规模地这样做的话,你试图做的并不是好的实践。你应该重新考虑你的物品的设计。

这是你想要的吗:

definition = ['basename', 'dirname', 'supports_unicode_filenames']
condition = ['isabs', 'isdir', 'isfile', 'islink', 'ismount']

result = {i: globals()[i] for i in ['definition', 'condition']}

使用
SimpleNamespace

from types import SimpleNamespace
sn = SimpleNamespace(
definition = ['basename', 'dirname', 'supports_unicode_filenames'],
condition = ['isabs', 'isdir', 'isfile', 'islink', 'ismount'],
)
它输出:

In [44]: sn
Out[44]: namespace(condition=['isabs', 'isdir', 'isfile', 'islink', 'ismount'], definition=['basename', 'dirname', 'supports_unicode_filenames'])

In [45]: vars(sn)
Out[45]:
{'condition': ['isabs', 'isdir', 'isfile', 'islink', 'ismount'],
 'definition': ['basename', 'dirname', 'supports_unicode_filenames']}

In [17]: dict(definition = ['basename', 'dirname', 'supports_unicode_filenames'],condition = ['isabs', 'isdir'
    ...: , 'isfile', 'islink', 'ismount'])
Out[17]: 
{'definition': ['basename', 'dirname', 'supports_unicode_filenames'],
 'condition': ['isabs', 'isdir', 'isfile', 'islink', 'ismount']}

就像你刚才展示的那样。。。你到底在问什么?
d={'definition':definition,'condition':condition}
,不要阴影
dict
我现在正在编辑请参考编辑过的问题@JonClementsNot不是这样的,但是在什么情况下你需要这个,你可以手动创建字典?如果有更多的作业,就会有大量的输入。这不是一个好的设计,特别是如果你有很多作业的话。我鼓励你们重新思考你们的课堂设计,直接在dict中重新组织你们的数据,而不是在课堂成员中。为什么要否决这个?这个问题不是很好,但答案是准确的。如果更多的任务,会有大量的输入。你从哪里得到这些变量?