平常测试开发中,以及如果你去面试python自动化测试的相关岗位,首先遇到的就是Python那几大数据类型的考察,笔者结合自己的实践,将相关知识整理一下。供大家学习
序列
1.序列是python中最基本的一种数据结构
2. 序列用于存储一组有序的数据,所有的数据在序列当中都有唯一的位置(索引)
3. 序列的分类:
- 可变序列(序列中元素可以改变)
- 列表(list)
- 不可变序列(序列中元素不可以改变)
- 字符串
- 元组
-
list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。实际开发中用的最多的也是list。list 为可变对象,可改变对象的值
1.初始化list
#初始化一个空的列表
classmates=[]
#初始化一个非空列表
students = ['猪八戒', '孙悟空', '沙和尚']
#查看数据类型 type(classmates)
print(classmates, type(classmates))
2.通用序列操作,这部分我是查阅的Python 3.7.4 documentation
students = ['猪八戒', '孙悟空', '沙和尚']
# x in s 判断元素是否在序列中,返回值为boolean
print('猪八戒' in students) #True
# x not in s 判断元素是否不在序列中,返回值为boolean
print('猪八戒' not in students) #False
#s + t 列表合并
teacher =['唐三藏']
print(students+teacher) # ['猪八戒', '孙悟空', '沙和尚', '唐三藏']
#s[i] 取列表第几个值, 可从前数 也可从后数
print(students[2]) #沙和尚
print(students[-2]) #孙悟空
#s[i:j] 列表截取,从i到j
print(students[1:2]) #['孙悟空'] 包含i ,但是不包含j
#s[i:j:k] 步长为K 的截取
print(students[0:2:2]) #['猪八戒'] 包含i ,但是不包含j
#len(s) 列表长度
print(len(students)) #3
# s.index(x[, i[, j]]) 查找元素位置从起始位置1开始到3
print(students.index("沙和尚",1,3)) #2
# s.count(x) 统计x在s中的个数
print(students.count("沙和尚")) #1
- 修改列表元素
students = ['猪八戒', '孙悟空', '沙和尚','唐三藏','白骨精']
# 直接通过索引修改
students[1] = 'sunwukong'
print(students) # ['猪八戒', 'sunwukong', '沙和尚', '唐三藏', '白骨精']
# 删除元素,通过索引删除
del students[2]
# 通过切片修改列表
students[0:2] = ['牛魔王', '红孩儿']
# 通过切片删除元素
del students[0:1]
不可变序列不能通过索引来修改元素
4. 列表的方法
# append 向列表中添加元素
students.append("牛魔王")
# 向列表中指定位置添加元素
students.insert(2,'红孩儿')
# extend(),使用新序列扩展当前序列
students.extend(['孙悟空', '沙和尚'])
# pop(i) 删除索引为i元素
students.pop(2)
# remove(x) 移除指定值的元素
students.remove('红孩儿')
# reverse()反转列表
students.reverse()
# sort 排序
students.sort()
- 遍历列表
for s in students:
print(s)
range()
range()是一个函数,可以用来生成一个自然数的序列
r= range(5) #默认从0开始
r=range(1,10)
r=range(0,10,2)
print(list(r)) # [0, 2, 4, 6, 8]
for s in range(10):
print(s)
元组(Tuple)
元组是一个不可变序列
它的操作基本上跟列表是一致的,在操作元组的时候将元组当作一个不可变的列表就ok 了
创建元组
my_tuple = ()
t=1,4,5,6 # 当元组非空时,括号可以省略
元组的解包
解包是将元组中每个元素的都赋值给一个变量
my_tuple=1,5,6
a,b,c=my_tuple
字典(dict)
创建字典:
d={} #空字典
d={'name':'xiaoming','age':18}
字典的使用:
#使用dict 创建字典
d=dict(name='xiaoming',age=18)
#len(d) 获取字典中元素的个数
len(d)
# in、not in 判断字典中是否有相应的键
#通过键获取相应的值 d['name'] 或d.get('name')
#修改字典
d['name'] = 'sunwukong' #如果键不存在,则添加
#d.update(d2)将其他字典中的key-value添加到当前字典中,如果有重复的key,则替换当前的字典的值
#删除
del d['name'] #或者 d.popitem()
d.pop('name') #根据key 删除
#清空字典
d.clear()
字典的遍历
for k in d.keys:
print(k)
for v in d.values:
print(v)
for k,v in d.items:
print(k,'=',v)
集合
- 集合只能存储不可变的对象
- 集合中存储的元素是无序的
- 集合中不能出现重复的元素
创建set
s={1,4,5}
s=set([5,6,9]) 将列表转换为set
#add() 添加元素到集合
# pop(),remove(),clear(),update() 这些方法 跟上面说的是一样的