PYTHON NOTES · 04
系统整理字符串、列表、元组、集合、字典与推导式。
- 字符串
- 容器
本文目录
Python 字符串与常用容器
系统整理字符串、列表、元组、集合、字典与推导式。
1.容器的概念
容器:一个变量可以储存多份数据
2.字符串容器
2.1 索引
#索引
#语法:名字[起始:结束:步长] 包头不包尾
##练习
str=("0123456789")
# 需求:
#1.取出3
print(str[3])
#2.取出345
print(str[3:6])
#3.取出369(3-10,步长为3)
print(str[3:10:3])
2.2负索引
#总结:
#1.负索引:从右往左计算的索引。起始-1
#2.从右往左切,负步长
#负向选择负步长切,正向选中正步长切
#4.起始索引,结束索引,步长都可以省略(其中一个或两个)
num="0123456789"
print(num[-1::-3])
#9630
2.3字符串常用方法
str=" 好好学习,天天向上 "
# 1.获取字符串长度:
# len(name)
# 返回结果是字符串长度
print(f"字符串的长度是{len(str)}")
# 2.检测字符串是否包含某段内容,统计出现的次数
# name.count(查找的内容)
# 返回结果是出现的次数
print(f"好出现的的次数是{str.count("好")}")
# 3.字符串的替换(不会替换旧内容,会生成一个新内容)
# name.replace(old,new)
# 返回替换后的新字符串
print(str.replace("向上","睡觉"))
# 4.取出字符串两端的空格(不会替换旧内容,会生成一个新内容)
# name.strip()
# 返回是新的字符串
print(str.strip())
# 5.字符串切分(切完以后是个列表)
# name.split()
# 把括号里的东西切掉
# 返回一个列表 存储字符串的切割
print(str.split(","))
# 6.获取某个字符的第一次出现的索引
# name.index(查找内容)
# 如果没有就报错了
print(str.index("天"))
3.列表容器
3.1创建列表
#1.定义一个列表
#语法:
#变量名 = [内容1,内容2,.....]
#变量名=[] #空列表
#列表名=list()#构造列表
import random
#
# #掌握:
# #1.学会定义列表
name_list =["张飞","赵云","关羽","马超","黄忠"]
# #2.索引取出列表的单个内容
# print(name_list[3])
# #3.切片取出列表的多个内容
# print(name_list[0::2])
# #4.将列表内容赋值
变量名1,变量命2,变量命3=[1,2,3]
#将列表的值按顺序赋给变量名,需要数量一一对应要不然就会报错
#练习 做一个点名器
i=random.randint(0,len(name_list)-1)
print(name_list[i])
3.2列表常用方法
# 字符串容器 不可变 -> 方法只会产生新的内容
#列表容器 可变
my_list=[1,2,3,4,5,6,7,8]
new_list=["大","小","人"]
#1.增:
#1.1 从尾部增加一个元素
# 列表名.append()
# my_list.append(9)
# print(my_list)
#1.2指定位置插入
#列表名.insert(索引,插入的内容)
my_list.insert(0,0)
print(my_list)
#1.3展开插入(针对的是列表合并)
# 列表名.extend(要插入的列表)
my_list.extend(new_list)
print(my_list)
#2.删:
#2.1remove 删除指定的元素
#列表名.remove(要删除的内容) 从左往右第一个
my_list.remove(0)
print(my_list)
#2.2 根据索引删除内容
#列表名.pop(索引)
my_list.pop(9)
print(my_list)
#2.3del通过del关键字删除
# del 列表名[索引]
#3.改:通过索引找到要改的内容,直接赋值就行
#4.查:
#4.1 通过索引查询内容
#4.2通过切片查询内容
#4.3通过len查询列表长度
#4.4通过count可以统计列表出现的次数
4.元组
元组是一个不可变列表
4.1元组的常用方法
# 1.元组
#t=tuple() 无意义,因为元组不能修改
#t=(3,)加逗号区分是元组还是计算括号
#元组是一个只读列表 不能修改,所以元组只能查询
t1=(1,2,2,4)
#输出元组
print(t1)
#输出元素4的索引
print(t1.index(4))
#输出在元组中元素2出现了几次
print(t1.count(2))
#输出元素的长度
print(len(t1))
#根据索引找到元组的元素
print(t1[3])
5.集合
集合是一个无序/不重复的列表
5.1 集合的常用方法
s1={1,1,3,4,3}
#1.去重 不支持重复元素
#2.无序 不能用索引
#3.可变
#增 - add(内容)
#删 - remove(内容) 随机删一个pop()
#改 - 删除+新增
#查 - 查看集合的长度len()
#增
s1.add(2)
print(s1)
#删
s1.remove(2)
print(s1)
s1.pop()# 随机删除一个
#改
s1.remove(3)
s1.add(5)
print(s1)
#查
print(len(s1))
s2={1,2,3}
#集合的拼接
#并集(把a/b集合并起来)
s1.update(s2)
print(s1)
s3={4,5,6,7}
#差集(在a 不在b)
#计算+更新
s3.difference_update(s1)
print(s3)
#计算不更新
s3=s3.difference(s1)
#交集(A、B重复的值)
print(s1 & s3)
#使用场景,给列表去重
6.字典
6.1 定义字典
#字典的定义:
#字典是对数据进行解释的时候使用的类型
#字典是存储不同类型数据的主要方式
d1={
"身高":180,
"体重":180,
"血压":180
}
#不能使用索引,通过键找对应的值
#总结:
#2.字典的内容 - 键值对 key:value
#3.多个键值对用逗号隔开
#4.键要用引号包裹
#5.使用字典的值 名[键]
#定义一个字典(对象)
#品牌 型号 价格 发布年份
d2 = {
"company": "XMI",
"type": "17puls",
"price": 7999,
"pub_year": 2026
}
#定义一个对象
couple={
"name":"yyqx",
"gender":"男",
"age":26,
"heigt":178,
"weight":55
}
print(couple["age"])
6.2字典的常用方法
#不能使用索引,通过键找对应的值
#总结:
#2.字典的内容 - 键值对 key:value
#3.多个键值对用逗号隔开
#4.键要用引号包裹
#5.使用字典的值 名[键] (键不能重复,值可以重复)
#定义一个字典(对象)
#品牌 型号 价格 发布年份
d2 = {
"company": "XMI",
"type": "17puls",
"price": 7999,
"pub_year": 2026
}
#定义一个对象
couple={
"name":"yyqx",
"gender":"男",
"age":26,
"heigt":178,
"weight":55
}
print(couple["age"])
7.推导式
#1.列表推导式
#[变量 for 临时变量 in 可迭代对象]
print([i for i in range(5)])
#2.集合推导式
#{变量 for 临时变量 in 可迭代对象}
print({i for i in range(6)})
#3.字典推导式
#{键:变量 for 临时变量 in 可迭代对象}
print({i:i**2 for i in range(6)})
#4.三目表达式--快速生成一个值(真/假)
print('真'if 2>1 else '假')