一、关于Python中容器类型的知识点补充
1、字符串
使用单引号或双引号定义
str1 = ‘abcdefg’
str2 = “hello world”
字符串可直接使用四则运算符运算:
print(‘-’ * 20)
对于所定义字符串中有引号的情况:
考虑使用转移符号:str1 = ‘I’am Tom’
单引双引混用:str2 = “I’m Tom”
字符串的切片:
左闭右开
序列名称[开始位置下标:结束位置下标:步长(步阶)]
numstr = ‘0123456789’
numstr[0:3:1] # 012 => range方法非常类似,步长:每次前进1步
numstr[0:3:2] # 02 => 每次前进2步
str[::-1]倒置字符串
str[-3::]起始参数设置负数的意思是从后往前数
字符串的内置方法:
find() # 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1。
index() # 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。
replace() # 返回替换后的字符串
split() # 返回切割后的列表序列,split(".")) # 以'.' 切分
title() # 所有单词首字母大写
upper() # 所有英文大写
lower() # 所有英文小写
join() # 以规定字符拼接字符串
list = ['1', '2', '3']
str1 = '_'
print(str1.join(list)) # '1-2-3'
2、列表
2.1 增
append() #增加指定数据到列表中
list.append("4") # 在列表的末尾添加指定元素
extend() #列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
list.extend(['5', '6', '7']) # 在列表的末尾扩展指定的多个元素
insert() #指定位置新增数据
list.insert(0, "0") # 在列表的指定位置插入指定元素
2.2、删
del 列表[索引] #删除列表中的某个元素
del list[0] # 从内存中删除
pop(index) #删除指定下标的数据(默认为最后一个),并返回该数据
list.pop(1) # 从列表中删除指定索引元素,默认最后一位,可参数指定位置
remove(元素) #移除列表中某个数据的第一个匹配项。
list.remove('3') # 从列表中删除指定元素
2.3、改
列表[索引] = 修改后的值 #修改列表中的某个元素
list[0] = '0' # 元素替换
reverse() #将数据序列进行倒叙排列
list.reverse() # 翻转列表
sort() #对列表序列进行排序
list.sort(reverse=True) # 排序操作,其中参数reverse设置True为倒序
2.4、查
列表在计算机中的底层存储形式,列表和字符串一样,在计算机内存中都占用一段连续的内存地址,我们向访问列表中的每个元素,都可以通过"索引下标"的方式进行获取。
list1 = ['apple', 'banana', 'pineapple'] # 获取列表中的banana
print(list1[1])
index() #指定数据所在位置的下标
list1.index('apple')
count() #统计指定数据在当前列表中出现的次数
list2.count('关羽')
in #判断指定数据在某个列表序列,如果在返回True,否则返回False
if '10.1.1.100' in list3:
not in #判断指定数据不在某个列表序列,如果不在返回True,否则返回False
2.5、列表的遍历
while循环
list1 = ['貂蝉', '大乔', '小乔']# 定义计数器
i = 0# 编写循环条件
while i < len(list1):
print(list1[i])
# 更新计数器
i += 1
for循环
list1 = ['貂蝉', '大乔', '小乔']
for i in list1:
print(i)
3、元组
元组特点:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。
tuple1 = (10, 20, 30)
嵌套元组
nested_tuple = ((1, 2, 3), (2, 4, 6), (2, 3, 5)) # 定义一个嵌套元组
操作方法:
元组[索引] #根据索引下标查找元素
index() #查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同
count() #统计某个数据在当前元组出现的次数
len() #统计元组中数据的个数
4、集合
集合:集合本身拥有去重性质
在Python中,我们可以使用一对花括号{}或者set()方法来定义集合,但是如果你定义的集合是一个空集合,则只能使用set()方法。
4.1、增
add()方法:向集合中增加一个元素(单一)
students = set()
students.add('李哲')
students.add('刘毅')
print(students)
4.2、删
remove()方法:删除集合中的指定数据,如果数据不存在则报错。
products = {'萝卜', '白菜', '水蜜桃', '奥利奥', '西红柿', '凤梨'} # 定义一个集合
products.remove('白菜') # 使用remove方法删除白菜这个元素
print(products)
4.3、查
- in :判断某个元素是否在集合中,如果在,则返回True,否则返回False
- not in :判断某个元素不在集合中,如果不在,则返回True,否则返回False
5、字典
5.1、增
向字典中添加元素的语法:字典名称[key] = value
# 1、定义一个空字典
person = {}
# 2、向字典中添加数据
person['name'] = '刘备'
person['age'] = 40
person['address'] = '蜀中'
# 3、使用print方法打印person字典
print(person)
5.2、删
1、del 字典名称[key]:删除指定元素
# 1、定义一个有数据的字典
person = {'name':'王大锤', 'age':28, 'gender':'male', 'address':'北京市海淀区'}
# 2、删除字典中的某个元素(如gender)
del person['gender']
# 3、打印字典
print(person)
2、clear()方法:清空字典中的所有key
# 1、定义一个有数据的字典
person = {'name':'王大锤', 'age':28, 'gender':'male', 'address':'北京市海淀区'}
# 2、使用clear()方法清空字典
person.clear()
# 3、打印字典
print(person)
5.3、改
基本语法:字典名称[key] = value
# 1、定义字典
person = {'name':'孙悟空', 'age': 600, 'address':'花果山'}
# 2、修改字典中的数据(address)
person['address'] = '东土大唐'
# 3、打印字典
print(person)
5.4、查
1、字典序列[key]:使用具体的某个key查询数据,如果未找到,则直接报错。
2、keys() 以列表返回一个字典所有的键
3、values() 以列表返回字典中的所有值
4、items() 以列表返回可遍历的(键, 值) 元组数据
5、get() 使用key查询,未找到不会报错,推荐使用
二、推导式
推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列(一个有规律的列表或控制一个有规律列表)的结构体。
1、列表推导式
变量名 = [表达式 for 变量 in 列表]
变量名 = [表达式 for 变量 in 列表 if 条件]
变量名 = [表达式 for 变量 in 列表 for 变量 in 列表]
例如:squares_list = [i**2 for i in range(1, n + 1) if i % 2 == 0]
2、集合推导式
变量名 = {表达式 for 变量 in 列表}
setnew = {i**2 for i in range(3)}
3、字典推导式
# 定义名字列表
names = ['Alice', 'Bob', 'Charlie']
# 定义年龄列表
ages = [25, 30, 35]
# 使用字典推导式将两个列表拼接成字典
people_dict = {names[i]: ages[i] for i in range(len(names))}
三、可变类型和不可变类型
不可变类型:内存地址一旦固定,其值就不能发生改变
数值(int整型、float浮点类型)
bool类型(True和False)
字符串类型(str)
元组(tuple 1,2,3)
可变类型:内存地址一旦固定,其值是可以发生改变
列表(list [1, 2, 3])
字典(dict {key:value})
集合(set {1, 2})
查看变量地址可以使用内置方法id(),其参数就是要显示的变量信息
Python容器类型与推导式详解
417

被折叠的 条评论
为什么被折叠?



