bob=['bob smith',30,30000,'software'] sue=['sue jones',45,40000,'hdware'] print(bob) print(sue) worker=[bob,sue] for person in worker: print(person[0].split()[-1]) #获取记录的姓氏 person[2]*=1.2 #工资涨幅1.2倍 print(worker[0][1]) #获得bob的年纪 第一条记录的索引为0 pays=[person[2] for person in worker] #迭代收集pay print (pays) pays=map((lambda x:x[2]),worker) payssum=sum(pays) #工资总和 print(payssum) worker.append(['tom smith',30,0,None]) print(worker)
第一天学习,发现python代码简介,易读。
使用list时,访问字段需要我们记住所在的位置,我们可以将字段与索引对应起来。例如
name,age,pay,work =range(4)
我们可以这样访问bob的姓名 年龄工资 及工作
bob[name]
bob[pay]
但这并没有记录和字段名的直接映射,我们在获取bob.index(30)得到的值是1,并不是age 无法对应起来
列表的列表
bob=[['name','bob smith'],['age',30],['pay',30000],['work','software']]
sue=[['name','sue jones'],['age',45],['pay',40000],['work','hdware']]
worker=[bob,sue]
for person in worker:
for (name,value) in person:
if name=='name':
print(value)
我们可以定义一个函数来获得这个值
def file(record,label):
for(fname,fvalue) in record:
if fname==label:
return fvalue
print(file(bob,'name')
print(file(sue,'pay')
for rec in worker:
print(file(rec,'name') #打印worker中所有的人姓名