基本数据类型
基本数据类型(8种)
- 整型(int)
- 浮点型(float)
- 字符串(str)
- 列表(list)
- 元祖(tuple)
- 字典(dict)
- 集合(set)
- 布尔(bool)
数据类型分类
字节类型表示
a=bytes('123')
or
a=b'123'
字节数组
bytearray('123')
可变序列
列表[]
,集合{}
,字典{"key":'value'}
不可变序列
字符串''
,元祖()
有序序列
列表[]
,字符串''
,元祖()
无序散列
集合{}
,字典{"key":'value'}
数据类型操作方法
字符串方法
字符串拼接
运算符 “+” 号拼接
str1 + str2
数组转字符串
"".join([str1, str2])
“%”号占位符拼接
"str1:%s,str2:%s"%(str1, str2)
format方法拼接
"{}{}{}".format(str1, str2, str3)
字符串替换
m:新字符串,n:旧字符串,x:替换个数
str1.replace(m,n,x)
查找字符串位置
查找m在str1中位置(索引),找不到会抛出异常
str1.index(m)
查找m在str1中位置(索引),找不到返回 -1
str1.find(m)
统计字串出现的次数
统计m在str1中出现的次数,一个都没有返回 0
str1.count(m)
判断是否是数字
判断str1是否是数字,返回 bool
str1.isdigit()
判断是否是字母
判断str1是否是字母,返回bool
str1.isalpha()
判断是否是大写
判断str1是否是大写,返回bool
str1.isupper()
判断是否是小写
判断str1是否是小写,返回bool
str1.islower()
判断str1是不是以m开头
判断str1是不是以m开头,返回bool
str1.startswith(m)
判断str1是不是m结尾
判断str1是不是m结尾,返回bool
str1.endswith(m)
str1转化为大写
str1.upper()
str1转化为小写
str1.lower()
去除部分字符串
去掉str1左右空白字符串
str1.strip()
去掉左侧空白
str1.lstrip()
去掉右侧空白
str1.rstrip()
标题化
str1.title()
首字母变成大写
str1.capitalize()
分割字符串
以m为界分割,分割x次
str1.split(m, x)
列表方法
元素添加到末尾
li.append(m)
插入元素
将m插入到列表,x是列表元素下标
li.insert(x,m)
列表拼接
li.extend(list1)
- 列表拼接,li 尾部增加 list1 的元素,作用在 li 上
- 这个方法也是充分体现了鸭子类型,传入的参数不仅是列表,元组、集合等可迭代对象都可以当作参数传入
- 和
li+list1
区别:li + list1
是表达式,要用一个变量来接收,如list2 = li + list1
弹出(删除)元素
li.pop(x)
- x:被删除元素的索引,返回值:被删除的元素
- 若不传参数,则从最后开始删除
删除元素
删除一个元素m,没有返回值
li.remove(m)
清空列表
li.clear()
查询元素下标
查询m的下标
li.index(m)
统计元素个数
统计m在li中出现的次数,一个都没有返回 0
li.count(m)
设置元素值
把li中下标为x的元素的值,设置成m
li[x] = m
深拷贝和浅拷贝
copy.copy(li)
浅拷贝,只拷贝第一层元素的引用,产生的新的列表与被拷贝的列表互不影响copy.deepcopy(li)
深拷贝,递归拷贝所有元素,产生新的列表与被拷贝的列表互不影响li = old_li
赋值,两个变量都指向同一个内存块,修改li会对old_li产生影响,同理,修改old_li也会对li产生影响
列表排序
永久排序
# 排序
li.sort(reverse=True/False)
倒序
li.reverse()
- True 倒序
- False 正序
临时排序
# 排序 sorted(li, reverse=True/False)
倒序 reversed(li)
- True 倒序
- False 正序
列表遍历
假设:lists = [1, 2, 3, 4, 5]
只遍历值
for i in lists:
print(i)
逆序遍历
for i in lists[::-1]:
print(i)
只遍历索引
for idx in range(0, len(lists)):
print(idx)
元组方法
查找下标
查找m在tup中下标
tup.index(m)
统计元素个数
统计m在tup中出现的次数,一个都没有返回 0
tup.count(m)
集合方法
求 st1 和 st2 的交集
st1 & st2
求 st1 和 st2 的并集
st1 | st2
求 st1 和 st2 的差集
st1 - st2
添加元素
向集合st里面添加一个元素m
st.add(m)
删除元素
随机删除集合里的元素
st.pop()
删除指定元素
st.remove(m)
判断st1与st2是否存在交集
st1.isdisjoint(st2)
判断st1是否是st2的子集
st1.issubset(st2)
判断st1是否是st2的父集
st1.issuperset(st2)
更新元素
向集合里面添加元素m,m可以为字符串、列表、元组、集合、字典(字典只存key)
st1.update(m)
字典方法
生成一个字典
生成一个字典d,键是可迭代对象m中的元素,值是默认值v
d = dict.fromkeys(m, v)
设置默认值
查询字典d中有没有k这个键,有则返回k对应的值;无则添加,d[k]=v
d.setdefault(k, v)
清空字典
d.clear()
删除键值对
删除以k为键的键值对
d.pop(k)
删除最后一个键值对
d.popitem()
合并字典
把new_d的键值对合并到d中
d.update(new_d)
添加或修改键值对
d[k]=v
查询键值对
查询d中是否k这个键值对,若有,返回k的值;若没有,返回默认值v
d.get(k, v)
判断数据类型的方法
type(变量)
isinstance(变量,类型)
另外还有一些之前在github上总结的:测试开发面试资源、复习资料汇总
感兴趣的可以看看。