我有一个类似的列表:
host_info = ['stackoverflow.com', '213.213.214.213', 'comments', 'desriprion', 'age']
有时,我需要从列表中删除一个或多个元素,然后将列表返回给调用者。要删除评论项目,我会这样做:
host_info.pop(2)
我更喜欢为每个项目使用常量而不是某个幻数。
然后我可以使用:
host_info.pop(comments) # comments is integer 2
枚举这些常量的最佳方法是什么,以便在列表偏移发生变化时维护它们很简单?
答案 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']
这消除了对“键”映射列表的依赖,并将两个列表组合成一个关联容器。