数据结构中的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",

对于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"
 ],
我正在编写的完整原始代码在这里供参考

我不完全理解自己正在编写的代码是如何工作的,我只知道它返回的数据结构

我对基本代码的本地添加是过滤掉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()