Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.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_Dictionary_Data Structures - Fatal编程技术网

Python 不需要直接访问时Dict与自定义结构?

Python 不需要直接访问时Dict与自定义结构?,python,dictionary,data-structures,Python,Dictionary,Data Structures,当您必须存储一些需要迭代但从未直接访问的键值对时,即您将永远不必调用dict.get(key)或dict[key]。还是最好使用pythondict,或者在操作结构时创建一个自定义结构以支持syntaxsugar # pairs: <class Rule>:<list <class Verb>> # dict manipulation for rule, methods in rules_dict.iteritems(): for method in

当您必须存储一些需要迭代但从未直接访问的键值对时,即您将永远不必调用
dict.get(key)
dict[key]
。还是最好使用pythondict,或者在操作结构时创建一个自定义结构以支持syntaxsugar

# pairs: <class Rule>:<list <class Verb>>

# dict manipulation
for rule, methods in rules_dict.iteritems():
    for method in methods:
        do_something(rule, method)

# structure manipulation
for rule in rules_struct.rules:
    for method in rule.methods:
        do_something(rule, method)
#对::
#口述操纵
对于规则,rules_dict.iteritems()中的方法:
对于方法中的方法:
做某事(规则、方法)
#结构操纵
对于规则\u struct.rules中的规则:
对于rule.methods中的方法:
做某事(规则、方法)

我主要担心的是,尽管我更喜欢操纵结构,但它可能是(这是我不太确定的)创建一些继承
规则
动词
的自定义类,然后在构建结构实例时必须继续将
规则
转换为
MyStruct.Rule
动词
转换为
MyStruct.Verb
,这是不好的

如果您正在寻找一个字典,它可以映射值列表上的键,请看一看
(1[1,2,3])
如果您正在寻找语法糖,也许您应该考虑将do_something代码段移动到“Rule”类中,并将“methods”(类动词)作为Rule类中的字段?顺便说一下,我认为您不想使用自定义类。另一方面,你有没有考虑过,如果你不更新密钥,为什么要使用dict而不是tuple?@Coldspeed确实比我提出的两个选项都简单、更好。谢谢