求各位大佬帮忙,本人新手遇到问题有点烦躁,如下:
需求如下:
Python2.7
a = {"beijing":20,"shanghai":30}
想要得到:
b = (["beijing","shanghai"],[20,30])
并且希望元祖 b 中我想 2 个列表内元素的值都能和字典 a 中相匹配
分割线*************
我自己的瞎搞的几个解法,不知道对不对,如下:
第一个方法: a = {"beijing":20,"shanghai":30} cc = ( [a1 for a1 in a.viewkeys()],[a2 for a2 in a.viewvalues()] ) 看起来结果是对的,但是不确定当 a 内的元素增多时是否结果还是对的。
第二个方法: a = {"beijing":20,"shanghai":30} cc = (a.keys(),a.values()) 看起来结果和第一个方法是一样的,但是也不确定当 a 内的元素增多时是否结果还是对的。
第三个方法: In [124]: a Out[124]: {'beijing': 20, 'shanghai': 50}
In [125]:
In [125]: a1 = []
In [126]: a2 = []
In [127]: for x,y in a.iteritems(): ...: a1.append(x) ...: a2.append(y) ...:
In [128]: cc = (a1,a2)
In [129]: cc Out[129]: (['beijing', 'shanghai'], [20, 50])
希望各位大佬多指点,非常感谢!
1
305835227fadf OP 贴上去代码乱了,不好意思。
|
2
aijam 2018-12-12 19:52:33 +08:00 2
tuple(map(list, zip(*a.items())))
|
3
aijam 2018-12-12 19:55:03 +08:00
第二个方法是最好的啦
|
4
305835227fadf OP @aijam 我的字典 a 未来会有很多数据,这个解法可以保证随着数据量增大元祖内 2 个 list 都是对应有序的吗大佬
|
5
aijam 2018-12-12 19:56:43 +08:00
要保证顺序的话按照我的应该可以
|
6
305835227fadf OP |
7
aijam 2018-12-12 20:00:11 +08:00
嗯,那就用我的,没问题
|
8
305835227fadf OP @aijam 第二个方法我怕出现刚才我说的那个问题
|
9
aijam 2018-12-12 20:03:55 +08:00
我本来以为需要对应所以发了 2 楼,后来又看了一眼你写的还以为不要对应所以发了 3 楼,最后发现你想要对应。:D
|
10
305835227fadf OP @aijam 谢谢大佬
|