Day3
又见str
-索引
str h e l l o
索引 0 1 2 3 4
- 贴片操作(顾头不顾尾)
s=‘Hello’
s[1:3]
out:‘He’
s[2:4]
out:‘ll’
- 字符串不可变
对某个字符串如str重新赋值时,没有改变str本身,只是改变了str指向的地址,即给新值提供新地址,让str指向新地址。旧地址会被解释器定时回收。
-字符串常用操作
a=“Hello world”
str.center(整数,间隔符号)
str.count(要查找的字符,开始索引数,结束索引数)
str.endwith(a) #检验字符串str是否以a为结尾,返回true 或者 false
str.startwith(a) #检验开头,与以上类似
str.find(a) #字符查找,返回-1表示没找到,若找到,则返回索引
str.isdigit() #判断str是否是数字形式的字符串,如’1’
b=[“g”,“c”,“t”] ;“连接符”.join(b) out:g连接符c连接符t
a.replace(“l”,“M”) #用M替换a中原来所有的l
a.replace(“l”,“M”,1) #用M替换a中前1个l
a.split(” “) #用空格作为分隔符分开a out:[“Hello”,“world”]
又见list
定义
特点(索引)
插入:
1.list.append(需要添加的内容)
2.list.insert(索引,需要添加的内容)
3.list1.extend(list2) (把list2合并到list1的末尾)
4.list1.insert(索引,list3)
删除:
1.del list[索引] 直接删除
2.list.pop() #默认删除最后一个元素并返回被删除的值
3.list.pop(索引) #删除指定元素 tips:若要删除倒数第n个,则索引为-n
4.list.remove(“a”) #删除第一个找到的a值
5.list.clear() #清空
修改
查找:
1.list.index(“a”) #返回从左开始匹配到的第一个a的索引
2.list.cout(“a”) #返回a的个数
切片
1.list[1:4] #取索引1-3的内容
2.list[:4] #取索引0-3的内容
3.list[4:] #取索引4-末尾的内容
4.list[-5:-1] #取倒数第五-倒数第二的内容
5.list[-5:] #取倒数第五-倒数第一的内容
6.list[0??2] #取从第零个索引一直到倒数第二个索引,但步长为2来取,即取索引为0,2,4,6…的值
7.list[0::2] #以步长为2从0到最右取相应索引的值
排序
list.sort()
tips:排序顺序为大写英文字母、小写、中文
反转
list.reverse() #把列表左右翻转
循环列表
out:
a
b
c
即打印了每一个list中的元素。
打印索引与list元素:
out:
(0, ‘a’)
(1, ‘b’)
(2, ‘c’)
out:
0 a
1 b
2 c
班级成绩排序小程序
需求:把[班级成员,成绩]列表按五个成绩等级重新排列。
out:
[[‘a’, 97], [‘f’, 100]]
[[‘e’, 88]]
[[‘g’, 79]]
[[‘c’, 70], [‘h’, 65]]
[[‘b’, 50], [‘d’, 59]]
不足:如果每个成绩等级里也可以排序则更佳
字典
定义
- 结构
{key1:value1,key2:value2}
- key必须为不可变数据类型(字符串、数字),必须唯一(若key不唯一,则后面的key及相应的value会覆盖之前的同名的key)
- 可存放任意多个value、可修改、可以不唯一
- 无序
- 查询速度快,且不受dict的大小影响。(与hash有关)
操作
-
增加
dict[key]=value -
删除
del dict[key]
dict.pop(key) #与list类似
dict.clear() -
修改
与普通变量赋值方式相同 -
取值
dict[key]
out:value -
查询
查询key是否在dict中:key in dict
查询dict中所有的keys: dict.keys()
查询dict中所有的values: dict.values()
把dict中的每一对key-value变成列表中的元素(类似):dict.items() -
循环
单独取key value:#与list最后类似
- for k in dict.keys()
3.#推荐使用这种这种速度快
求长度
len(dict)
嵌套
练习
快递分拣小程序:
#共452条记录list = [ ['王*龙', '北京市海淀区苏州街大恒科技大厦南座4层'], ['庞*飞', '北京市昌平区汇德商厦四楼403'], ['顾*锐', '江苏省扬州市三垛镇工业集中区扬州市立华畜禽有限公司'], ['王*飞', '上海市徐汇区上海市徐汇区H88越虹广场B座5E'], ['华*升', '北京市海淀区杰睿大厦'], ['朱*锴', '上海市浦东新区川沙新镇华川家园33号楼503'], ['陈*盼', '浙江省杭州市闲林街道,西溪华东园,十幢一单元401。'], ['司*鹏', '河南省鹤壁市淇滨大道310号 鹤壁京立医院'], ['聂*睿', '河北省石家庄市中山路勒泰中心写字楼b座11层'], ['张*', '辽宁省本溪市明兴丽城九号楼四单元'], ['冉*晗', '河北省石家庄市体育南大街385号'], ['高*杰', '北京市朝阳区广渠路42号院3号楼,408'], ['李*国', '安徽省合肥市新站区淮合花园'], ['常*源', '江苏省南京市白下路242号,南京市红十字医院,放射科'], ['张*玉', '河北省沧州市新居然家居广场'], ['王*川', '上海市奉贤区南桥镇 贝港七区'], ['冀*庆', '河北省保定市河北大学坤兴园生活区'], ['胡*晨', '浙江省宁波市浙江省宁波市江东区中山首府A座2004室'], ['尹*婷', '湖北省武汉市武汉大学信息学部'], ['李*东', '辽宁省大连市大关一街3号3-3-1'], ['张*', '天津市河西区隆昌路94号(天津科技馆)'], ['刘*', '湖北省黄冈市城关镇'], ['阿*亚', '内蒙古省呼和浩特市包头东接民望家园1区3号楼2单元1501'], ['孙*云', '山东省济南市山东省济南市历下区祥泰汇东国际,一号楼3005室'], ['曹*亮', '黑龙江省大庆市服务外包产业园D1'], ['侯*琦', '上海市长宁区金钟路凌空soho16号楼3楼'], ['郭*峰', '河南省商丘市高新技术开发区恒宇食品厂'], ['赵*生', '河北省唐山市朝阳道与学院路路口融通大厦2408室'], ['张*', '陕西省咸阳市文汇东路6号西藏民族大学'], ['刘*民', '北京市大兴区南海家园四里7号楼1单元902'], ['郭*兰', '湖北省武汉市湖北省'], ['张*强', '河北省张家口市经开区钻石南路11号'], ['鞠*龙', '山东省潍坊市玉清街江山帝景B区12号楼一单元14楼'], ['李*', '北京市海淀区西二旗智学苑5号楼超市'], ['许*康', '北京市西城区西单北大街甲133号'], ['叶*生', '江苏省扬州市扬子江中路756号'], ['赵*兴', '北京市海淀区西二旗上地信息路1号金远见大楼华纬讯301'], ['徐*革', '北京市海淀区闵庄路3号102栋二层206'], ['徐*', '安徽省淮南市金荷小区(金格商场旁)'], ['雷*', '北京市朝阳区望京街道望京sohoT1C座1201'], ['庄*', '浙江省杭州市恒生电子大厦'], ['蔡*恩', '湖北省武汉市仁和路沙湖港湾B区1103'], ['陈*', '江苏省苏州市巴城镇湖滨北路193号牛吃蟹庄'], ['黄*', '北京市朝阳区霄云路26号鹏润大厦A座33层'], ['魏*飞', '河北省石家庄市新石北路与红旗大街交口开元大厦502室'], ['张*', '山东省济南市兴港路三庆城市主人'], ['段*琪', '山西省临汾市福利路尧乡小区'], ['刘*', '北京市昌平区龙禧三街骊龙园601'], ['王*生', '上海市杨浦区邯郸路复旦大学遗传学楼319室'], ['王*君', '江苏省扬州市叶挺路318号建行营业部'], ['王*义', '北京市东城区环球贸易中心D座'], [来源:JaneWu_
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!