两个LIST 合成一个DICT

ListA = ['10', '10', '20', '20', '20', '24']
ListB = ['23', '44', '11', '19', '57', '3']

d = {}
for a, b in map(None, ListA, ListB):
if not d.has_key(a):
   d[a] = [b]
else:
   d[a].append(b)
print d

结果:

{'24': ['3'], '10': ['23', '44'], '20': ['11', '19', '57']}

以下也可以这样:

vv=tuple(zip(ListA,ListB))

= {}
for x, y in vv:
d
.setdefault(x, []).append(y)
print d

结果是一样的

vv = [('a', 1),('a', 2),('a', 3),('b', 1),('b', 2),('c', 1),]

= {}
for x, y in vv:
d
.setdefault(x, []).append(y)
print d

结果:{'a': [1, 2, 3], 'c': [1], 'b': [1, 2]}

a = ['a1', 'a2', 'a3']
b = ['b1', 'b2']


for x, y in [(x,y) for x in a for y in b]:
    print x, y

结果 :

a1 b1
a1 b2
a2 b1
a2 b2
a3 b1
a3 b2
a1 b1
a2 b2

      python中dict和list排序
1、list排序
列表的排序是python内置功能,自身含有sort方法
如:
>>> s=[2,1,3,0]
>>> s.sort()
[0, 1, 2, 3]
2、dict排序
对字典的排序,因为每一个项包括一个键值对,所以要选择可比较的键或值进行排序
sorted(iterable[, cmp[, key[, reverse]]]
cmp和key一般使用lambda
   如:
   >>> d={"ok":1,"no":2}
   对字典按键排序,用元组列表的形式返回
   >>> sorted(d.items, key=lambda d:d[0])
   [('no', 2), ('ok', 1)] 在 sqlalchemy 中的ADD_ALL 就类似这种格式
   对字典按值排序,用元组列表的形式返回
>>> sorted(d.items, key=lambda d:d[1])
   [('ok', 1), ('no', 2)]
3、元组列表排序

   >>> li=[(2,'a'),(4,'b'),(1,'d')]
   >>> li.sort()
   [(1, 'd'), (2, 'a'), (4, 'b')]
   如果字典按项的第一个元素排序的话,可以转换成元组列表来进行
   >>> d={"ok":1,"no":2}
   >>> tt=[tuple(item) for item in d.items()]
   >>> tt.sort()
   [('no', 2), ('ok', 1)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值