'''
合并:
[{a: 111}, {a: 222}, {b: 333}, {c: 444}, {b: 555}]
成:
[{a: [111, 222]}, {b: [333, 555]}, {c: 444}]
'''
合并:
[{a: 111}, {a: 222}, {b: 333}, {c: 444}, {b: 555}]
成:
[{a: [111, 222]}, {b: [333, 555]}, {c: 444}]
'''
思路:
遍历列表,和列表中的每一个词典
放到一个新字典中,如果key存在了,我就追加到列表里面
如果不在,则放到一个key为一个新的列表中。
放到一个新字典中,如果key存在了,我就追加到列表里面
如果不在,则放到一个key为一个新的列表中。
遍历这个字典,放到列表中
s=[{'a': 111}, {'a': 222}, {'b': 333}, {'c': 444}, {'b': 555}]
d={}
for i in s:
for k,v in i.items():
if k not in d:
d[k]=[v]
else:
d[k].append(v)
print(d)
d={}
for i in s:
for k,v in i.items():
if k not in d:
d[k]=[v]
else:
d[k].append(v)
print(d)
result=[]
for k,v in d.items():
result.append({k:v})
print(result)
for k,v in d.items():
result.append({k:v})
print(result)
求一个列表的中位数
def get_middle_num(L):
nums =sorted(L)
if len(nums)%2==0:
return (nums[len(nums)//2-1]+nums[len(nums)//2])/2
else:
return nums[len(nums)//2]
nums =sorted(L)
if len(nums)%2==0:
return (nums[len(nums)//2-1]+nums[len(nums)//2])/2
else:
return nums[len(nums)//2]
print(get_middle_num([1,2,3,4,5,6,7,8,9,10,11]))
print(get_middle_num([1,2,3,4,5,6,7,8,9,10]))
print(get_middle_num([1,2,3,4,5,6,7,8,9,10]))