如何在perl中执行散列哈希中常见值的键合并

时间:2018-02-04 23:11:48

标签: perl

我正在研究perl中哈希的哈希,其中我有一些值 内部哈希对于不同的密钥时间戳是相同的。有没有办法合并类似值的时间戳键?


$ sudo -Hi pip install pandas
Collecting pandas
  Using cached pandas-0.22.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Requirement already satisfied: python-dateutil in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from pandas)
Collecting numpy>=1.9.0 (from pandas)
  Using cached numpy-1.14.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Requirement already satisfied: pytz>=2011k in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from pandas)
Installing collected packages: numpy, pandas
  Found existing installation: numpy 1.8.0rc1
    DEPRECATION: Uninstalling a distutils installed project (numpy) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
    Uninstalling numpy-1.8.0rc1:
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 778, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 754, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip/req/req_uninstall.py", line 115, in remove
    renames(path, new_path)
  File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 267, in renames
    shutil.move(old, new)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move
    copy2(src, real_dst)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2
    copystat(src, dst)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat
    os.chflags(dst, st.st_flags)
OSError: [Errno 1] Operation not permitted: '/tmp/pip-FbYaYw-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-info'

预期结果:

'Test Responder Data String' => { 
                        '2018-01-26' => 'zzz00175002802;newData1',
                        '2018-01-20' => 'xxy00171329968;data1',
                        '2018-01-27' => 'xxy00171329968;data1',
                        '2018-01-28' => 'xxy00171329968;data1'
                        '2018-01-04' => 'www00171510082;ResponderData',
                        '2018-01-17' => 'rrr00175002256;try data',
                        '2018-01-05' => 'aaa00175033226;response try', 
                        '2018-01-08' => 'aaa00175033226;response try'
                       }

1 个答案:

答案 0 :(得分:5)

my %h=(
    '2018-01-26' => 'zzz00175002802;newData1',
    '2018-01-20' => 'xxy00171329968;data1',
    '2018-01-27' => 'xxy00171329968;data1',
    '2018-01-28' => 'xxy00171329968;data1',
    '2018-01-04' => 'www00171510082;ResponderData',
    '2018-01-17' => 'rrr00175002256;try data',
    '2018-01-05' => 'aaa00175033226;response try', 
    '2018-01-08' => 'aaa00175033226;response try'
);
my %t;
push @{ $t{ $h{$_} } }, $_ for keys %h;

my %result = map { join(",", @{$t{$_}}) => $_ } keys %t;

use Data::Dumper; print Dumper \%result;

输出

$VAR1 = {
      '2018-01-17' => 'rrr00175002256;try data',
      '2018-01-05,2018-01-08' => 'aaa00175033226;response try',
      '2018-01-26' => 'zzz00175002802;newData1',
      '2018-01-04' => 'www00171510082;ResponderData',
      '2018-01-27,2018-01-20,2018-01-28' => 'xxy00171329968;data1'
    };
相关问题