数据结构中的Python排序
对于Python脚本编写,我现在已经不知所措,不太明白自己在做什么 我有一个字典,其中键是字符串,值是字符串列表。我需要对列表中的字符串进行字母数字排序,以便数据结构中的Python排序,python,list,sorting,dictionary,Python,List,Sorting,Dictionary,对于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",
"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"
],
我正在编写的完整原始代码在这里供参考
我不完全理解自己正在编写的代码是如何工作的,我只知道它返回的数据结构
我对基本代码的本地添加是过滤掉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))
如果
d
是您的字典,您可以按
for _, l in d.items():
l.sort()
福格勒的回答几乎对我有用。我需要做的是使用iteritems。items正在做一些时髦的本地版本,这些版本在代码块按此方式完成后被丢弃
你能澄清一下“不工作”吗?该代码似乎比仅仅尝试对列表进行排序要复杂得多。例如,
sorted()
函数似乎是一个很好的选择,但下面的代码所做的事情比示例中描述的要多,不是吗?假设您的字典名为a_dict,您可以使用类似于:[a_dict[i]的内容按您想要的方式进行排序.sort()表示目录中的i]
。然而,正如其他人所指出的,你的代码似乎做得更多。我已经用更多的信息和我正在研究的代码的链接更新了这个问题。在定义组的一条语句中有相当多的内容,我真的不知道如何进一步扩展它?(参见)
for key, value in groups.iteritems():
value.sort()