一、字符串
切片:对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
序列[开始位置的下标:结束位置的下标:步长]
开始位置的下标不写默认0;步长不写默认1;如果不写开始和结束的下标,表示选取全部
n = 'abcdefghijkl'
print(n[2:5:2])----ce
print(n[2:5])----cde
print(n[:5])----abcde
print(n[:])----abcdefghijkl
负数:注意选取方向一致
print(n[::-1])----lkjihgfedcba
print(n[-4:-2])----ij
print(n[-4:-2:-1])----选取方向不一致,故无法输出
print(n[-2:-4:-1])----kj
1.字符串之查找
find()查找子串是否包含在字符串中,如果是返回子串开始位置的下标,否则返回-1
字符串序列.find(子串,开始位置下标,结束位置下标)
rfind()和find()功能相同,但查找方向从右侧开始
index()查找子串是否包含在字符串中,如果是返回子串开始位置的下标,否则返回异常
字符串序列.index(子串,开始位置下标,结束位置下标)
rindex()和index()功能相同,但查找方向从右侧开始
count()查找子串在字符串中出现的次数
字符串序列.count(子串,开始位置下标,结束位置下标)
n = 'abcdefghijkl'
print(n.find('def'))----3
print(n.index('def'))----3
print(n.count('def'))----1
print(n.find('def',6,9)) #-1
print(n.index('def',6,9))----报错
2.字符串之修改
字符串序列.replace(旧子串,新子串,替换次数)
字符串序列.split(分割字符,分割次数)
字符或子串.join(多字符串组成的序列)
例:
n = 'abcdefghdijdkl'
print(n.replace('d','6',2))----abc6efgh6ijdkl
print(n.split('d',2))----['abc', 'efgh', 'ijdkl']
print(':'.join(n))----a:b:c:d:e:f:g:h:d:i:j:d:k:l
字符串修改大小写
字符串序列.capitalize()将字符串第一个字符转换成大写
字符串序列.title()将字符串每个单词首字母转换成大写
字符串序列.lower()将字符串大写转小写
字符串序列.upper()将字符串小写转大写
例:
n = 'abc defg hdijdkl'
print(n.capitalize())----Abc defg hdijdkl
print(n.title())----Abc Defg Hdijdkl
字符串序列.lstrip()删除字符串中左侧空白字符
字符串序列.rstrip()删除字符串中右侧空白字符
字符串序列.strip()删除字符串中两侧空白字符
字符串序列.ljust(长度,填充字符)返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符
字符串序列.rjust(长度,填充字符)返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符
字符串序列.center(长度,填充字符)返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符
例:
n = 'adefghdijdkl'
print(n.ljust(20,'/'))----adefghdijdkl
print(n.center(20,'/'))----adefghdijdkl
字符串之判断(返回结果是布尔型数据类型)
字符串序列.startswith(子串,开始位置下标,结束位置下标)返回字符串是否以子串开头
字符串序列.endswith(子串,开始位置下标,结束位置下标)返回字符串是否以子串结束
例:
n = 'abcdefghdijdkl'
print(n.startswith('abc'))----True
字符串序列.isalpha()如果字符串中至少有一个字符并且所有字符都是字母则返回True,否则返回False
字符串序列.isdigit()如果字符串中只包含数字则返回True,否则返回False
字符串序列.isalnum()如果字符串中至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False
字符串序列.isspace()如果字符串中只包含空白则返回True,否则返回False
二、列表
列表一次性存储多个且不同类型的数据[数据0,数据1,数据2,...]
n = ['abc',520,'apple']
print(n[2])----apple
1.列表之查找
列表序列.index(数据,开始位置下标,结束位置下标)返回指定数据在列表中所在位置的下标
列表序列.count(数据,开始位置下标,结束位置下标)统计指定数据在列表中出现的次数
len(列表序列)列表长度
n = ['abc',520,'apple']
print(n.index('abc'))----0
print(len(n))----3
2.列表之判断
in判断指定数据是否在列表中,存在返回True,不存在返回False
not in判断指定数据是否不存在列表中,不存在返回True,存在返回False
n = ['abc',520,'apple']
print(520 in n)----True
3.列表之修改数据
增加数据
列表序列.append(数据)列表结尾追加数据
列表序列.extend(数据)列表结尾追加拆开的数据
列表序列.insert(位置下标,数据)指定位置追加数据
例:
n = ['abc',520,'apple']
n.append('juice')
print(n)----['abc', 520, 'apple', 'juice']
n.append(['juice',1314])
print(n)----['abc', 520, 'apple', ['juice', 1314]]
n.extend('juice')
print(n)----['abc', 520, 'apple', 'j', 'u', 'i', 'c', 'e']
n.extend(['juice',1314])
print(n)----['abc', 520, 'apple', 'juice', 1314]
n.insert(2,1314)
print(n)----['abc', 520, 1314, 'apple']
删除数据
del 目标
列表序列.pop(下标)删除指定下标的数据(默认最后一个),返回该数据
列表序列.remove(数据)移除列表中某个数据的第一个匹配项
列表序列.clear()清空列表
例:
n = ['abc',520,'apple']
del n[0]
print(n)----[520, 'apple']
n = ['abc',520,'apple']
n.pop(2)
print(n)----['abc', 520]
n = ['abc',520,'apple',520]
n.remove(520)
print(n)----['abc', 'apple', 520]
n = ['abc',520,'apple']
n.clear()
print(n)----[]
修改数据
列表序列.reverse()逆置
列表序列.sort(key=None,reverse=True)reverse=True表示降序,reverse=False表示升序(默认升序)
例:
n = ['abc',520,'apple']
n[0] = 'aaa'
print(n)----['aaa', 520, 'apple']
n = ['abc',520,'apple']
n.reverse()
print(n)----['apple', 520, 'abc']
n = [2,1,5,8,3]
n.sort()
print(n)----[1, 2, 3, 5, 8]
复制数据
列表序列.copy()
n = [2,1,5,8,3]
n2 = n.copy()
print(n2)----[2, 1, 5, 8, 3]
4.列表嵌套
n = [['lily',520,'apple'],[2,1,5,8,3],['red','yellow','green']]
print(n[1][2])----5
随机分配老师
import random
teachers = ['apple','tracy','lily','anna','fancy']
offices = [[],[]]
for name in teachers:
num = random.randint(0,1)
offices[num].append(name)
i = 1
for office in offices:
print(f'办公室{i}的人数是{len(office)},老师分别是:')
for name in office:
print(name)
i = i + 1
三、元组
一个元组可以存储多个数据,元组内的数据不能修改。
n = (10)
m = (10,)如果元组内只有一个数据,数据后添加逗号,否则数据类型是唯一数据的数据类型
print(type(n))----<class 'int'>
print(type(m))----<class 'tuple'>
1.元组之查找
元组.index(数据,开始位置下标,结束位置下标)返回指定数据在元组中所在位置的下标
元组.count(数据,开始位置下标,结束位置下标)统计指定数据在元组中出现的次数
len(元组)元组长度
例:
n = (10,'apple',[520,'yellow'])
print(n[1])----apple
n = (10,'apple',[520,'yellow'],10)
print(n.index(10))----0
n = (10,'apple',[520,'yellow'],10)
print(n.count(10))----2
n = (10,'apple',[520,'yellow'])
print(len(n))----3
元组内的数据不能修改,但元组内的列表内的数据可修改
n = (10,'apple',[520,'yellow'])
n[2][1] = 'green'
print(n)----(10, 'apple', [520, 'green'])
n = (10,'apple',[520,'yellow'])
n[1][1] = 'green'
print(n)----报错
四、字典
1.字典之修改
增
n = {'name':'jerry','gender':'男','age':25,'weight':120}
n['height'] = 180
print(n)----{'name': 'jerry', 'gender': '男', 'age': 25, 'weight': 120, 'height': 180}
删除
del 删除字典或键值对
clear()清空字典
n = {'name':'jerry','gender':'男','age':25,'weight':120}
del(n)
print(n)----报错
n = {'name':'jerry','gender':'男','age':25,'weight':120}
del n['age']
print(n)----{'name': 'jerry', 'gender': '男', 'weight': 120}
n = {'name':'jerry','gender':'男','age':25,'weight':120}
n.clear()
print(n)----{}
2.字典之查找
key值查找
n = {'name':'jerry','gender':'男','age':25,'weight':120}
print(n['name'])----jerry
get()
字典序列.get(key,默认值) 若查找的key不存在则返回默认值,若省略默认值则返回None
n = {'name':'jerry','gender':'男','age':25,'weight':120}
print(n.get('name'))----jerry
print(n.get('names'))----None
keys()
字典序列.keys() 查找字典中所有key,返回可迭代对象
n = {'name':'jerry','gender':'男','age':25,'weight':120}
print(n.keys())----dict_keys(['name', 'gender', 'age', 'weight'])
values()
字典序列.values() 查找字典中所有value,返回可迭代对象
n = {'name':'jerry','gender':'男','age':25,'weight':120}
print(n.values())----dict_values(['jerry', '男', 25, 120])
items()
字典序列.items() 查找字典中所有键值对,返回可迭代对象,里面数据是元组,元组数据1是字典的key,元组数据2是字典key对应的value
n = {'name':'jerry','gender':'男','age':25,'weight':120}
print(n.items())----dict_items([('name', 'jerry'), ('gender', '男'), ('age', 25), ('weight', 120)])
3.字典之循环遍历
n = {'name':'jerry','gender':'男','age':25,'weight':120}
for key in n.keys():
print(key)----name
gender
age
weight
n = {'name':'jerry','gender':'男','age':25,'weight':120}
for value in n.values():
print(value)----jerry
男
25
120
n = {'name':'jerry','gender':'男','age':25,'weight':120}
for item in n.items():
print(item)----('name', 'jerry')
('gender', '男')
('age', 25)
('weight', 120)
键值对拆包
n = {'name':'jerry','gender':'男','age':25,'weight':120}
for key,value in n.items():
print(f'{key}={value}')----name=jerry
gender=男
age=25
weight=120
五、集合
1.创建集合
创建非空集合:{}或set();创建空集合:set()
n = {}
m = set()
print(type(n))----<class 'dict'>
print(type(m))----<class 'set'>
2.修改集合
增加数据(集合自动去重)
add() 追加单一数据
n = {10,100,20,30}
n.add(100)
print(n)----{10, 100, 20, 30}
update() 增加的数据是序列
n = {10,100,20,30}
n.update([40,50])
print(n)----{100, 40, 10, 50, 20, 30}
删除数据
remove() 删除集合中指定数据,如果数据不存在会报错
n = {10,100,20,30}
n.remove(10)
print(n)----{100, 20, 30}
discard() 删除集合中指定数据,如果数据不存在不会报错
n = {10,100,20,30}
n.discard(10)
print(n)----{100, 20, 30}
pop() 随机删除集合中的某个数据,并返回这个数据
n = {10,100,20,30}
m = n.pop()
print(n)----{100, 20, 30}
print(m)----10
查找数据
in 判断数据在集合里
not in 判断数据不在集合里
n = {10,100,20,30}
print(10 in n)----True