博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础:list,map,open()文件读写
阅读量:2110 次
发布时间:2019-04-29

本文共 5822 字,大约阅读时间需要 19 分钟。

在这里插入图片描述

1, list

list.py

#定义 list集合: 方法1bob=['bob,smith', 23, 30000, 'software']sue=['sue,jones', 34, 40000, 'hardware']people=[bob,sue]#定义 list集合: 方法2names=  ["name",    "age", "pay", "job"]values1=["bob smith", 42,  30000, "software"]values2=["sue jones", 34,  4000,  'hardware']kvlist1=list( zip(names,values1) )#[('name', 'bob smith'), ('age', 42), ('pay', 30000), ('job', 'software')]print(kvlist1[0][1]) #bob smithkvlist2=list( zip(names,values2) )#[('name', 'sue jones'), ('age', 34), ('pay', 40000), ('job', 'hardware')]print(kvlist2[0][1]) #sue jones#取出值name1=bob[0].split(',')[-1]print("bob last name is ",name1) #bob last name is  smithage= (sue[1]*2 )print("sue age is",age)#sue age is 68#从大集合中取出值bobname=people[0][0] #bob,smithprint(bobname)#遍历集合for per in people:    print(per[0],",", per[1],",", per[2]) # bob,smith , 23 , 30000     sue,jones , 34 , 40000for per in people: per[1]*=2for per in people: print(per[1])# (23, 34) ==> 46, 68pays=[per[2] for per in people ]print(pays)# [30000,40000]print("--pay 的总和 ", sum( pays))  #70000pays=map( (lambda x: x[2]) , people)print( pays ) # print(  list(pays) ) #[30000, 40000]#列表的扩展people.append(['tom willy', 45, 80000])for per in people: print(per[0])#使用下标name, age ,pay =range(3)print(name, age, pay) #0 1 2print( bob[name] ) #bob,smith#############################################定义kv对bob=[['name','bob smith'], ['age',32], ['pay',80000]]sue=[['name','sue jones'], ['age',56],  ['pay',70000]]people=[bob, sue]#遍历listfor per in people:    print(per[0][1]) #bob smith    sue jonesnames= [per[0][1]  for per in people ]print(names) #['bob smith', 'sue jones']for per in people:    for (name,value)  in  per: #['name','bob smith']  ['name','sue jones']        if name=='name': print(value)

2, map

map.py

#定义字典:方法1bob={"name":"bob smith", "age":42, "pay":30000, "job":"dev"}sue={"name":"sue jones", "age":32, "pay":50000,  "job":"hdw"}#定义字典:方法2bob=dict(name="bob smith", age=42, pay=3000,  job="dev")sue=dict(name="sue jones", age=32,  pay=50000, job="hdw")#定义字典:方法3bob={}bob["name"]="bob smith"bob["age"]=42bob["pay"]="dev"#定义字典:f\方法4fields=("name", "age", "job", "pay")record=dict.fromkeys(fields, "?")print(record)#{'name': '?', 'age': '?', 'job': '?', 'pay': '?'}#定义字典:方法4names=["name","age", "pay", "job"]values=["bob smith", 42, 30000, "dev"]kvmap=dict(zip ( names, values)) #{'name': 'bob smith', 'age': 42, 'pay': 30000, 'job': 'dev'}print(kvmap["name"])#bob smith#取出字典的值:方法1print(bob["name"], ",", bob['age']) #bob smith  42print(bob["name"]) #bob smithprint(bob["name"].split()[-1]) #smithprint(sue["pay"]) # 5000#取出字典的值: 方法2msg1="name=>%s, age=%s"%(dict["name"], bob["age"])msg2="name=>%(name)s, age=>%(age)s"%bobmsg3="name=>{name}, age={age}".format(**bob)print(msg1)#name=>lisi, age=>32print(msg2)#name=>lisi, age=>32print(msg3)#name=>lisi, age=>32# map中嵌套listbob={    "name":{"first":"bob",  "last":"smith"},    "age":32,    "job":["software","writing"],    "pay":[40000, 50000]}print(bob["name"]["first"]) #bobprint(bob["pay"][1])#50000for job in bob["job"]: print(job) #software  writingbob["job"].append("hardware")for job in bob["job"]: print(job) #software  writing hardware#map 嵌套mappeople={}people["bob"]=bobpeople["sue"]=suefor value in people.values():#{'name': {'first': 'bob', 'last': 'smith'}, 'age': 32, 'job': ['software', 'writing', 'hardware'], 'pay': [40000, 50000]}                             #{'name': 'sue jones', 'age': 32, 'pay': 50000, 'job': 'hdw'}   for key in value.keys():       print(key) #name, age, job, payfor key in people.keys():    print(key, people[key]) #sue {'name': 'sue jones', 'age': 32, 'pay': 50000, 'job': 'hdw'}for item in people.items():    print(item) #('sue', {'name': 'sue jones', 'age': 32, 'pay': 50000, 'job': 'hdw'})

3, map和list互相嵌套

list_map.py

#mapbob={"name":"bob jones", "age":32, "pay":30000, "job":"dev"}sue={"name":"sue smith", "age":42, "pay":40000, "job":"dev"}#listpeople=[bob, sue]db={"bob":bob, "sue":sue}#遍历for per in people:    print(per["name"], per["age"], per["pay"], sep=", ") #bob jones, 32, 30000      sue smith, 42, 40000for per in people:    if per["name"]=="bob jones":        print(per["pay"]) # 3000names=[ per["name"] for per in people ]print(names)#['bob jones', 'sue smith']res=map( ( lambda x:x["name"]), people)print(list(res))#['bob jones', 'sue smith']sumpay=sum( per["pay"] for per in people)print(sumpay)# 70000names=[per["name"] for per in people if per["age"] >40 ]print(names) #['sue smith']names2=(per["name"] for per in people if per["age"]> 40 )print(next(names2)) #sue smithpays=[  (per["pay"]*2  if per["age"]> 40  else per["pay"] )     for per in people ]print(pays) #[30000, 80000]

4, 文件读写

read_write.py

fileName="py-db.txt"#保存数据def save(db, fileName=fileName):    output = open(fileName, "w")# w, r    for per in db:        print(per,  file=output)        for(name, value) in db[per].items():            print(name,value, sep=",",file=output)        print("kv-over",file=output)    print("db-over",file=output)    output.close()def read(fileName=fileName):    inputstr=open(fileName)    import sys    sys.stdin=inputstr    key=input()    print(key)    while(key  != "db-over"):        field=input()        while field != "kv-over":            name, value= field.split(",")            print("读入的数据=> ",name, value)            field=input()        key = input()        print(key)def read2(fileName=fileName):    inputstr=open(fileName)    import sys    sys.stdin=inputstr    db={}    key=input()    while(key  != "db-over"):        person={}        field=input()        while field != "kv-over":            name, value= field.split(",")            person[name]=value            field=input()        db[key]=person        key = input()    print("db==== " , db)    return dbif __name__== "__main__":    #from chapter1.res.list_map import db    # save(db)    read2()

转载地址:http://bxdef.baihongyu.com/

你可能感兴趣的文章
如何删除MySql服务
查看>>
BAT Java和Rti环境变量设置
查看>>
NodeJs npm install 国内镜像
查看>>
python3.5.2 mysql Exccel
查看>>
mysqlDump 导出多表,其中部分表有限制数据内容
查看>>
vi 替换方法
查看>>
BAT 相关
查看>>
ANT集成SVNANT访问SVN(Subversion)
查看>>
高可用架构-- MySQL主从复制的配置
查看>>
jvm调优-从eclipse开始
查看>>
构建微服务:Spring boot 入门篇
查看>>
jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
查看>>
Spring boot Myibatis
查看>>
spring boot(七):springboot+mybatis多数据源最简解决方案
查看>>
Spring Boot 笔记
查看>>
maven下手动导入ojdbc6.jar
查看>>
SpringBoot、MyBatis配置多数据源XML方法
查看>>
SpringBoot配置属性之MQ
查看>>
SpringBoot集成mybatis
查看>>
Shell文本处理三剑客之grep
查看>>