Python3表示记录_字典列表

[[email protected] script_ce]# python3
Python 3.7.3 (default, Oct 23 2019, 17:27:01) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> bob = dict(name='Bob Smith',age=42,pay=30000,job='dev')
>>> sue = dict(name='Sue Jones',age=45,pay=40000,job='hdw')
>>> bob
{'name': 'Bob Smith', 'age': 42, 'pay': 30000, 'job': 'dev'}
>>> sue
{'name': 'Sue Jones', 'age': 45, 'pay': 40000, 'job': 'hdw'}
>>> 
>>> people = [bob,sue]
>>> for person in people:
...     print(person['name'],person['pay'],sep=',')
... 
Bob Smith,30000
Sue Jones,40000
>>> for person in people:
...     if person['name']=='Sue Jones':
...             print(person['pay'])
... 
40000
>>> 

Python3表示记录_字典列表

>>> names = [person['name'] for person in people]
>>> names
['Bob Smith', 'Sue Jones']

Python3表示记录_字典列表

>>> list(map((lambda x: x['name']),people))
['Bob Smith', 'Sue Jones']

Python3表示记录_字典列表

>>> sum(person['pay'] for person in people)
70000

Python3表示记录_字典列表

列表解析和按需生成器表达式这样的工具,可以达到类似sql查询的效果,只是这里操作的是内存中的对象.

#类似SQL查询

>>> [rec['name'] for rec in people if rec['age'] >=45]
['Sue Jones']

Python3表示记录_字典列表

>>> [(rec['age']** 2 if rec['age']>=45 else rec['age'])for rec in people]
[42, 2025]

Python3表示记录_字典列表

>>> G = (rec['name'] for rec in people if rec['age'] >= 45)
>>> next(G)
'Sue Jones'

Python3表示记录_字典列表

>>> G = ((rec['age']** 2 if rec['age'] >= 45 else rec['age']) for rec in people)
>>> G.__next__()
42

Python3表示记录_字典列表

字典是通常用的Python对象,所以这些记录也可以使用通常的Python语法进行访问和更新.

>>> for person in people:
...     print(person['name'].split()[-1])
... 
Smith
Jones

Python3表示记录_字典列表

>>> person['pay']*=1.10
>>> 
>>> for person in people:print(person['pay'])
... 
30000
44000.0

Python3表示记录_字典列表