兩個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))
d ={}for
d.setdefault(x,[]).append(y)print d
結果是一樣的
vv =[('a',1),('a',2),('a',3),('b',1),('b',2),('c',1),]
d ={}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)]