本文目录
  1. 1.容器的概念
  2. 2.字符串容器
  3. 2.1 索引
  4. 2.2负索引
  5. 2.3字符串常用方法
  6. 3.列表容器
  7. 3.1创建列表
  8. 3.2列表常用方法
  9. 4.元组
  10. 4.1元组的常用方法
  11. 5.集合
  12. 5.1 集合的常用方法
  13. 6.字典
  14. 6.1 定义字典
  15. 6.2字典的常用方法
  16. 7.推导式

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 '假')