我的输入文件如下所示:
1111;A:aaaa,B:aaaa,F:aaaa
2222;A:aaaa,B:aaaa,E:aaaa
3333;C:aaaa,D:aaaa,E:aaaa,F:aaaa
4444;D:aaaa
5555;C:bbbb
2222;A:bbbb,B:bbbb
2222;A:cccc,B:cccc
1111;C:cccc,D:cccc,E:cccc,F:cccc
2222;A:dddd,B:dddd
1111;A:eeee,B:eeee
1111;A:ffff,B:ffff
2222;C:ffff,E:ffff,F:ffff
1111;A:gggg,B:gggg,C:gggg
3333;C:gggg,E:gggg,F:gggg
5555;A:hhhh,B:hhhh
我想在java中得到一些类似的东西,比如在内部映射结构中使用字符串列表的嵌套映射。你知道吗
Map<'String, Map<'String, List{String}>>
像这样:
<1111:
<'A':{'aaaa','eeee','ffff','gggg'}>
<'B':{'aaaa','eeee','ffff','gggg'}>
<'C':{'cccc','gggg'}>
<'D':{'cccc'}>
<'E':{'cccc'}>
<'F':{'aaaa','cccc'}>
>
Python的Java} ,用^{} 可以很容易地解析这样一个简单的输入。你知道吗
Map
等价物是^{我能想到的最简单的方法是:
您可以省略使用
defaultdict
的if
语句,以使其更好一些。你知道吗备注:在这些示例中,甚至数字键都存储为字符串。这可能是需要的,但如果不是,您可以在指定dict值时使用
int
将它们转换为整数。你知道吗更新
要迭代嵌套字典的“leafs”,可以使用
values
s的dict
方法,该方法返回字典值的迭代器:在python2.7及以下版本中,建议在
values
上使用itervalues
方法,因为它返回的是迭代器而不是列表。你知道吗此外,还可以编写一个简单的生成器来循环这些值。你知道吗
那你就可以了
你可以免费获得一些内置函数,例如
相关问题 更多 >
编程相关推荐