二、列表、元组、字符串、字典、集合
这几个都类似数组,但是又有着及其微妙的差别,学着后面就忘了前面,脑袋成了浆糊,有些蛋痛,尝试一下整理、分类、理解
(五)列表
1.列表特征: list=[ ]。
2.增加数据:
增加单个数据:list.append() *列表对象的方法,不属于BIF。
增加多个数据:list.extend([ ])。
增加数据到指定位置:list.insert(位置,数据)。
*增加的数据既可以是数字、字符串也可以是列表、元组、字典、集合。
3.获取数据:list[num]。
4.删除数据:
list.remove(数据):删除的时候不知道数据在哪儿。
list.pop():无参数的时候默认弹出最后一个,有参数的时候弹出指定位置数据,参数是整数。
del list[num] :删除列表中具体数据。
del list 删除整个列表(或变量)。*del是python语句
5.列表切片
list=[1,2,3,4,5]
切片操作:
list2=list[list[1],list[2]] list2=[2,3]
list2=list[1:2] list2=[2,3]
list2=list[1:] list2[2,3,4,5]
list2=list[0:4:2] list2=[1,3,5] *从0位开始到4位,步长2。
list2=list[::-1] list2=[5,4,3,2,1]
del list[::2] list=[2,4] *从0位开始删除,步长为2,到最后。
列表方法如下:
dir(list)
[
'__add__', '__class__', '__contains__', '__delattr__',
'__delitem__', '__dir__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__',
'__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__',
'__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__reversed__',
'__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__',
'__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend',
'index', 'insert', 'pop', 'remove', 'reverse', 'sort'
]
(六)元组
1.元组特征:tuple=(1,)。
2.复制元组可以通过切片 tuple=tuple[:]。
3.无法直接修改、插入、删除元组数据。
*修改、插入、删除元组均需要通过切片、拼接
t = (1,) # 一个元素元组的定义,注意要有个逗号
t = (1,) * 5
t = (1,2,3) * 6
元组方法:
['__add__', '__class__', '__contains__', '__delattr__',
'__dir__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__','__getitem__', '__getnewargs__',
'__gt__', '__hash__', '__init__','__init_subclass__',
'__iter__', '__le__', '__len__', '__lt__', '__mul__',
'__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__rmul__', '__setattr__', '__sizeof__',
'__str__','__subclasshook__', 'count', 'index']
(七)字符串
定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,‘’或“”或‘’‘ ’‘’中间包含的内容称之为字符串
特性:
1.只能存放一个值
2.不可变
3.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序
补充:
1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r’l\thf’
2.unicode字符串与r连用必需在r前面,如name=ur’l\thf’
2、字符串常用操作
字母处理:
upper() # 全部大写
lower() # 全部小写
swapcase() # 大小写互换
capitalize() # 首字母大写,其余小写
title() # 首字母大写
格式化相关
ljust(width) # 获取固定长度,左对齐,右边不够用空格补齐
rjust(width) # 获取固定长度,右对齐,左边不够用空格补齐
center(width) # 获取固定长度,中间对齐,两边不够用空格补齐
zfill(width) # 获取固定长度,右对齐,左边不足用0补齐
*重难点:formate
“{0} {1} {2}”.format(“a”,“b”,“c”) 可以
“{0} {b} {c}”.format(“a”,“1”,“1”) 不可以
关键字参数要有赋值语句
“{0} {b} {c}”.format(“a”,b=1,c=5) 可以
“{b} {0} {c}”.format(b=1,“a”,c=5) 不可以
位置参数一定要在关键字参数之前
字符串搜索相关
find() # 搜索指定字符串,没有返回-1
index() # 同上,但是找不到会报错
rfind() # 从右边开始查找
count() # 统计指定的字符串出现的次数
*上面所有方法都可以用index代替,不同的是使用index查找不到会抛异常,而find返回-1
字符串替换
replace(‘old’,‘new’) # 替换old为new
replace(‘old’,‘new’,次数) # 替换指定次数的old为new
字符串去空格及去指定字符
strip() # 去两边空格
lstrip() # 去左边空格
rstrip() # 去右边空格
split() # 默认按空格分隔
split(‘指定字符’) # 按指定字符分割字符串为数组
字符串判断相关
startswith(‘start’) # 是否以start开头
endswith(‘end’) # 是否以end结尾
isalnum() # 是否全为字母或数字
isalpha() # 是否全字母
isdigit() # 是否全数字
islower() # 是否全小写
isupper() # 是否全大写
istitle() # 判断首字母是否为大写
isspace() # 判断字符是否为空格
bin() # 十进制数转八进制
hex() # 十进制数转十六进制
range() # 函数:可以生成一个整数序列
type() # 查看数据类型
len() # 计算字符串长度
format() # 格式化字符串,类似%s,传递值能多不能少
python中str函数isdigit、isdecimal、isnumeric的区别
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无
isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)
isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)
(八)字典
1.字典:即映射。
2.字典的特征:dict={}
3.字典的几种标识方式:
dict1={“godson”:1,“nick”:2,“bill”:3}
dict2=dict(godson=1,nick=2,bill=3)
dict3=dict(((“godson”,1),(“nick”,2),(“bill”,3)))
dict4=(zip([“godson”,“nick”,“bill”],[1,2,3]))
dict5=dict([(“godson”,1),(“nick”,2),(“bill”,3)])
dict6=dict({“godson”:1,“nick”:2,“bill”:3})
*区别于列表、元组,字典不可拼接。
4.字典的内置方法:
'__class__', '__contains__', '__delattr__', '__delitem__',
'__dir__','__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__','__getitem__', '__gt__', '__hash__',
'__init__', '__init_subclass__','__iter__', '__le__',
'__len__', '__lt__', '__ne__', '__new__','__reduce__',
'__reduce_ex__', '__repr__', '__setattr__','__setitem__',
'__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy',
'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem',
'setdefault', 'update', 'values'
(九)集合
1.集合的特征:set={1,2,3}
*集合是无序的,也就是说集合会自动去重。
2.集合的两种表示方法:
set1={1,2,3,4,5}
set2=set{[1,2,3,4,5]}
3.集合的相关方法
'__and__', '__class__', '__contains__', '__delattr__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__',
'__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__',
'__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__',
'__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__',
'__setattr__', '__sizeof__', '__str__', '__sub__',
'__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference',
'difference_update', 'discard', 'intersection',
'intersection_update', 'isdisjoint', 'issubset', 'issuperset',
'pop', 'remove', 'symmetric_difference',
'symmetric_difference_update', 'union', 'update'
4.不可变集合
set1=frontzenset{1,2,3,4,5}
set.add 失效
*注意,集合、元组、列表可以互相转化
这篇主要梳理数字或者字符串集合问题,感觉学的时候有点儿迷糊,梳理一遍感觉好很多,不当之处欢迎指正~