如何从Perl哈希创建Python中的dict等价物?

时间:2013-04-12 05:45:11

标签: python perl hash

我是python的新手,无法理解dict哈希。

这是我的perl代码:

my %sites;

foreach (@indexes) {
       push @{$sites{$1}}, $_ if (/.*\.(.*)/);
}

foreach my $sites (keys %sites)
{
        @devices = @{$sites{$sites}};
        #Do stuff

我如何在Python中做同样的事情?

1 个答案:

答案 0 :(得分:4)

这是一个非常直接的翻译:

import re

re_domain = re.compile(".*\.(.*)")
sites = {}

for index in indexes:
    match = re_domain.search(index)
    if match:
        sites.setdefault(match.group(1), []).append(index)

for site_key in sites.keys():
    devices = sites[site_key]

更像Pythonic的方法是这样做:

import collections
import os.path

sites = collections.defaultdict(list)

for index in indexes:
    root, ext = os.path.splitext(index)
    sites[ext].append(index)

for site_key, devices in sites.iteritems():
    ...