为列表中的偏移创建常量

时间:2011-08-21 14:34:22

标签: python

我有一个类似的列表:

host_info = ['stackoverflow.com', '213.213.214.213', 'comments', 'desriprion', 'age']

有时,我需要从列表中删除一个或多个元素,然后将列表返回给调用者。要删除评论项目,我会这样做:

host_info.pop(2)

我更喜欢为每个项目使用常量而不是某个幻数。

然后我可以使用:

host_info.pop(comments) # comments is integer 2

枚举这些常量的最佳方法是什么,以便在列表偏移发生变化时维护它们很简单?

1 个答案:

答案 0 :(得分:2)

最简单的方法是将列表更改为字典:

 keys_list = ['host',...]
 host_info = dict(zip(['stackoverflow.com', '213.213.214.213', 'comments', 'desriprion', 'age'], keys_list))

现在您不必担心密钥列表,如果从host_info字典中删除项目,则不会影响密钥=>价值关联

或者如果您只有一个主机信息列表:

host_info = {'host':'stackoverflow.com, 'ip':'213.213.214.213',...}

编辑:

要从host_info中删除密钥,请使用pop

host_info.pop('host')

如果您不确定钥匙是否在那里,您可以使用:

host_info.pop('host',None)

或者您可以使用:

if 'host' in host_info:
    del host_info['host']

作为旁注,AdamKG有一个很好的评论,解释说你不想将它转换回列表。你可以这样做:

 host = host_info['host']

这消除了对“键”映射列表的依赖,并将两个列表组合成一个关联容器。