python笔记-组合类型
1、序列
-
在python中,有这样一些类型,他们的成员是有序排列的,并且可以通过下标访问成员,称之为序列
-列表、range、元组和字符串都是序列 -
序列的通用操作
![image]()
-
序列通用操作
![image]()
- 索引(tuple[i])
- 切片(tuple[::])
- 元素个数计算(len(tuple))
- 求元素最大值(max(tuple))
- 求元素最小值(min(tuple))
- 删除序列(del tuple)
**- 序列相加(+) **
- 序列相乘(*)
2、列表
- 作用 存储多个数据可以采用列表,专门用于存储一串信息
- List(列表)是python中使用最频繁的数据类型,在其他语言中通常叫做数组
- 列表用[]定义,数据之间使用,逗号分隔
- 列表的索引从0 开始
- 索引就是数据在列表中的位置编号,索引又可以被称为下标
- 注意:从列表中取值时,如果超出索引范围,程序会报错
- 基本语法
列表名 = [元素1,元素2,元素3.....] - 列表的遍历-打印列表的每个元素
点击查看代码
list1 = list('123456789abcdeftghkflfjdlfj')
for i in list1:
print(i,end='-')
print()
- 列表的遍历-通过内置函数enumerate打印列表的索引和对应的值
点击查看代码
list1 = list('123456789abcdeftghkflfjdlfj')
for i,j in enumerate(list1):
print(i,j)
- 列表的遍历-通过range打印列表的索引和对应的值
点击查看代码
list1 = list('123456789abcdeftghkflfjdlfj')
for i in range(len(list1)):
print(i,':',list1[i])
点击查看代码
#列表的常用方法 变量.方法名()
list2 = [1,2,3,4,5,6,True,False,'hello','word','kate']
#append() 列表增加元素
list2.append('666')
print(list2)
#extend() 列表后面增加一个列表
list2.extend([11,22,33,44,55,11,1])
print(list2)
#insert() 插入元素,第一个参数是索引号,第二个参数是插入的元素值
list2.insert(2,'jake')
print(list2)
#pop() 通过索引删除某个元素
list2.pop(3)
print(list2)
#remove() 通过元素(值)删除,从头开始找,找到第一个删除就结束了
list2.remove(1)
print(list2)
#clear() 清空列表
# list2.clear()
# print(list2)
#reverse() 反转
list2.reverse()
print(list2)
3、元组
- Tuple(元组)与列表类似,不同之处在于元组的元素不能修改
- 元组表示多个元素组成的集合
- 元组用()定义
- str转tuple
- tuple5 = tuple('hello word!!!')
- tuple转str
- str1 = str(tuple5)
- list转tuple
- tuple6 = tuple([1,2,3,4,5,6,7,8,9])
- tuple转list
- list1 = list(tuple6)
- 元组常用方法
点击查看代码
tuple1 = (1,2,3,4,5,6,'hello',False,'a','c','d')
#count()查找元组中元素的个数
print(tuple1)
a1 = tuple1.count('hello')
print(a1)
#index() 查找元素的索引
a2 = tuple1.index(4)
print(a2)
- 元组的遍历
- 只打印元组中各个元素的值
tuple1 = (1,2,3,4,5,6,'hello',False,'a','c','d')
print('-' * 30)
for i in tuple1:
print(i) - 通过枚举函数enumerate实现打印索引和值
for index,value in enumerate(tuple1):
print(index,value) - 通过for i in range()方式实现元组中的元素和索引的打印
for i in range(len(tuple1)):
print(i,tuple1[i])
4、range系统内置函数
- range(start,end,[step=1]),生成一个等差序列[start,end),包左不包右
- 注意序列属于不可变序列,不支持元素修改,不支持+和*操作
- range 一般用于for-in循环编列
- start 表示列表起始值,包含,默认是0
- stop 表示列表结束值,但是不包含
- step 步长,默认为1
5、字符串
- 字符串序列的通用操作
点击查看代码
print(str1+'jake') #字符串加法
print(str1 * 2) #字符串的乘法
print('字符串的长度%d' %(len(str1))) #字符串的长度
print(max(str1),min(str1))
#del str1
#print(str1)
print('s' in str1)
print('abcdt' > 'abcdef')
- 字符串的元素打印
点击查看代码
#打印字符串的值
for i in str1:
print(i)
#打印字符串的索引和值,通过enumerate函数
for index,value in enumerate(str1):
print(index,value)
#打印字符串的索引和值,通过range实现
for i in range (len(str1)):
print(i,str1[i])
- 字符串类型转换
点击查看代码
print(str(1234),type(str(1234))) #int->str
print(str([1,2,3,4]),type(str([1,2,3,4]))) #list->str
print(str((1,)),type(str((1,)))) #tuple->str
- 字符串的常用方法 字符串名.方法名(可选参数1,可选参数2)
点击查看代码
str2 = '123456789'
str3 = ' heello wordleddd '
s = "Hello, World! Welcome to Python World!"
#islower判断字符串是否全是小写
print(s.islower())
#isupper判断字符串是否全是大写
print(s.isupper())
#isdigit判断字符串是否全为数字
print(s.isdigit())
#isdigit判断字符串是否全为字母
print(str2.isalnum())
# index通过元素进行索引查找,如果没有则报错
print(s.index('w'))
# rindex() - 从右侧开始查找
print(s.rindex("World")) # 27
# find通过元素进行索引查找,通过可选参数有查找元素的范围(起止索引号),查找不到返回-1
print(s.find("World")) # 7
print(s.find("Java")) # -1
print(s.find("World", 10, 30)) # 从索引10开始到30查找: 27
# rfind() - 从右侧开始查找
print(s.rfind("World")) # 27
#count统计子串出现的个数
print(s.count("World")) # 2
print(s.count("o")) # 4
print(s.count("o", 0, 10)) # 在索引0-10范围内查找: 1
#strip去除字符串前后的空格
print(str3)
print(str3.strip())
#split分割字符串,可以以指定的字符串进行分割,分割后生成的数据是列表
print(str3.split(' '))
print(str3.strip().split(' '))
#join将前面的字符串在后面每个元素中进行后面进行追加
print('#$%^'.join(['11','22','33','44']))
#将字符串全部转成小写
print(str1.lower())
#将字符串全部转成大写
print(str1.upper())
# startswith() - 检查是否以指定子串开头
filename = "document.pdf"
print(filename.startswith("doc")) # True
print(filename.startswith("doc", 0, 3)) # True (指定范围)
#endswith() - 检查是否以指定子串结尾
print(filename.endswith(".pdf")) # True
print(filename.endswith((".pdf", ".txt", ".docx"))) # 检查多个后缀: True
6、字典
- dictionary(字典)是除列表以外python之中,最灵活的数据类型
- 字典同样可以用来存储多个数据
- 通常用于存储 描述一个物体的相关信息
- 和列表的区别
- 列表是有序的对象集合
- 字典是无序的对象集合
- 字典使用{}定义,列表使用[]定义,元组使用()定义
- 字典使用 键值对 存储数据,键值对之间使用,分割
- 键key是索引
- 值value是数据
- 键和值之间使用:分割
- 键必须是唯一的
- 值可以取任何数据类型,但键只能使用字符串、数字或元组
- 字典的遍历
点击查看代码
d1 = {
'name':'jake',
'age':18,
'gender':'Man',
'phone':13152161817,
'name':'jack', #键重复的情况下,后面的键值会覆盖前面的键值
}
#传统for循环方法下遍历字典的key和value值
for i in d1:
print(i,d1[i])
print('*' * 30)
#遍历字典的key和value值
for k,v in d1.items():
print(k,v)
print('*' * 30)
#遍历字典的key值
for k in d1.keys():
print(k)
print('*' * 30)
#变量字典的value值
for v in d1.values():
print(v)
- 字典的常用方法
点击查看代码
d1 = {
'name':'jake',
'age':18,
'gender':'Man',
'phone':13152161817,
'name':'jack', #键重复的情况下,后面的键值会覆盖前面的键值
}
d1.items() #遍历字典的key和value
d1.keys() #遍历字典的key
d1.values() #遍历字典的value
print('*' * 30)
print('原始的d1字典信息',d1)
d1.update({'height':185}) #更新字典中键值对内容
print('update后的字典信息',d1)
d1.pop('name') #删除字典中某个键值对
d1.popitem() #从后面队尾删除一个键值对
print('popitem后的字典',d1)
a = d1.copy() #复制字典
print('copy的字典',a)
print(d1.get('age')) #get或者字典中某个key的值
d1.clear()
print('clear后的字典信息',d1)
7、集合
- 不允许有重复的元素,如存在重复则自动过滤,可进行交集、并集运算
- 是一种无序且不重复元素的数据结构
- 与dict类似,是一组key的集合(不存储value)
- 集合的基础操作
点击查看代码
#成员运算符in
print(1 in s)
#长度计算len()
print(len(s))
print(max({1,2,3,4,5}))
print(min({1,2,3,4,5}))
# del s
# print(s)
print('-' * 40)
s = {'a','b','c','d',1,2,3,4,5,6,11,22,33,44,55,66,77}
#集合的变量
for i in s:
print(i)
- 集合的常用方法
点击查看代码
#集合的追加,在原有的集合基础上追加一个集合
s.update({'helo','world',1,2,3})
print(s)
#集合中移除一个元素
s.remove('helo')
print(s)
#集合中增加一个元素
s.add('hello')
s.add('hello')
print(s)
#复制一个相同的集合
s1 = s.copy()
print(s1)
#从最左侧开始删除一个集合元素
s.pop()
print(s)
#清空集合
# s.clear()
# print(s)
#交集、并集
s2 = {1,2,3,'a','b','e','f',99,100}
#计算s和s2的交集
print(s & s2)
#计算s和s2的并集
print(s | s2)
-集合示例,分数列表数据去重,并计算每个分数段的学生人数
点击查看代码
#列表去重
score = [95,90,85,80,95,90,75,92,94,95,100,75,85,90,95,70,100,60,55,89,98,99]
s = set(score)
print(s)
d1 = {}
#统计各个分数的学生数量
for i in s:
t = score.count(i)
d1[i] = t
for k,v in d1.items():
print('得分为%d的学生人数为:%d'%(k,v))
8、不可变类型
- 数字(例如int、float、complex)
- 字符串(例如str)
- 元组 (例如tuple)
- 布尔类型 (例如 bool)
9、可变类型 - 列表 (例如 list)
- 字典 (例如 dict)
- 集合 (例如 set)



浙公网安备 33010602011771号