字典的操作
lambda
形如以下的函数
def get_value(_key): return Q[_key]
需要按标fname或者uid排序排列时 sorted()
from operator import inemgetter
from iterator import
在Python 2.x中最后的print()需要写成print ''
字典的操作
lambda
形如以下的函数
def get_value(_key): return Q[_key]
需要按标fname或者uid排序排列时 sorted()
from operator import inemgetter
from iterator import
在Python 2.x中最后的print()需要写成print ''
Python的类型与运算-字典操作
>>> Quentities = {'toast': 45,'muffin': 23,'ham': 78,'spam': 56,'eggs': 89}
>>> sorted(zip(Quentities.values(),Quentities.keys()))
[(23, 'muffin'), (45, 'toast'), (56, 'spam'), (78, 'ham'), (89, 'eggs')]
>>> max(Quentities,key=lambda k: Quentities[k])
'eggs'
>>> min(Quentities,key=lambda k: Quentities[k])
'muffin’
关于lambda,你可以把这个当成如下函数:
>>> def get_count(k):
... return Quentities[k]
...
>>> min(Quentities,key=get_count)
'muffin'
按fname或者uid排序时需要operator模块里的itemgetter函数
>>> from operator import itemgetter
按lname和fname的顺序排列时:
>>> rows_by_lfname = sorted(rows, key=itemgetter('lname','fname'))
>>> print(rows_by_lfname)
[{'lname': 'Beazley', 'uid': 1002, 'fname': 'David'},
{'lname': 'Cleese', 'uid': 1001, 'fname': 'John'},
{'lname': 'Jones', 'uid': 1004, 'fname': 'Big'},
{'lname': 'Jones', 'uid': 1003, 'fname': 'Brian'}]
通过某个字段将记录分组
>>> from operator import itemgetter
>>> from itertools import groupby
>>> rows.sort(key=itemgetter('date'))
>>> for date, items in groupby(rows, key=itemgetter('date')):
... print(date)
... for i in items:
... print(' ', i)
字典操作:字典列表的排序:需要按fname或者uid排序时需要operator模块里的itemgetter函数 需要按Iname和fname的顺序排列
=====字典
infor = {key:value,key2:value2}
#用键值对方式存储
infor={'name':'班长','addr':'北京','age':'18'}
print('%s %s %d'%(infor['name'],infor['addr'],infor['age']))
==字典中添加键值对
infor['newKey']=newValue
#在原key不存在的情况下,为添加,否则为修改
==字典中删除键值对
del infor['key']
#不存在就报错
#如果不确定该键值对是否存在
#使用
infor.get('key') #不存在就不显示信息,存在就显示值
.get()也是查询
list.items()取出的是一个元组
('key','value')
('key1','value1')
对于元组,可以使用分配赋值的方式
a,b=list.items()
a=key
b=value
==for循环中可以使用else
for temp in list:
else:
代码……
#else中的代码一定会执行
#可以在for中使用break 直接结束for循环则else中的代码不会执行
字典(下)
一、字典的比较:
(1)、比较值,但返回对应的键:
max{list,key=lambda x: list[x]} #找最大值对应的键。
二、字典列表的排序:
from operator import itemgetter
sorted(list,key=itemgetter('键1','键2'...)) #通过键对应的值来排序,也可以用多个键
三、通过某个字段将记录分组:
from operator import itemgetter
from itertools import groupby #分组
list.sort(key=itemgetter('键')) #排序
groupby(list,key=itemgetter('c'))#分组
打印举例:
for c,dict_list in groupby(list,key=itemgetter('c')):
print(c)
for _dict in dict_list:
print(_dict)