我现在对Python脚本已经有点不知所措了,不太明白我在做什么。你知道吗
我有一本字典,其中键是字符串,值是字符串列表。我需要对列表中的字符串进行字母数字排序,以便
"role_powerdns": [
"name-2.example.com",
"name-1.example.com",
"name-3.example.com"
],
看起来像这样
"role_powerdns": [
"name-1.example.com",
"name-2.example.com",
"name-3.example.com"
],
完整的原始代码,我的工作是在这里作为参考。https://github.com/AutomationWithAnsible/ansible-dynamic-inventory-chef/blob/master/chef_inventory.py
我不完全理解我自己的代码是如何工作的,我只知道它返回的数据结构。你知道吗
我对基本代码的本地添加是过滤掉IP并在字符串中插入.sub。我已经尝试重用下面的理解语法来修改字符串以对字符串进行排序。有人能举个例子说明如何遍历这样的嵌套结构吗?或者,如果在脚本中这么晚进行这种排序是不合适的,那么通常应该在什么时候处理它?你知道吗
def filterIP(fullList):
regexIP = re.compile(r'\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$')
return filter(lambda i: not regexIP.search(i), fullList)
groups = {key : [domain.replace('sub.example.com', 'example.com') for domain in filterIP(list(set(items)))] for (key, items) in groups.iteritems() }
print(self.json_format_dict(groups, pretty=True))
福格勒德的回答几乎对我有用。我需要做的是使用iteritems。items正在做一些时髦的本地版本,这些版本在代码块完成后会被丢弃
Iterating over dictionaries using 'for' loops
如果
d
是您的字典,那么您可以按相关问题 更多 >
编程相关推荐