top0,变量的定义
变量的定义: 变量名 = 值
name = 'Blank'
print(name)
print(type(name)) # <class 'str'>
num = 1
print(num)
print(type(num)) # <class 'int'>
name = 'Blank', 1
print(name)
1,列表
特性: 1.存储多种元素类型 2.存储多个数据
lst = [1, 2, 3, 4]
print(type(lst))
# 从左往右下标从0开始
lst2 = [1.88, 9, 'Carrey', '流星']
print(type(lst2))
print(lst2[1])
# 从左往右取
print(lst2[2])
# 从右往左取
print(lst2[-2])
切片 [开始下标:结束下标:步长] 结束下标取不到 步长就是你跨得步子
lst2 = [1.88, 9, 'Carrey', '流星','神铭','清华北大']
print(lst2[1:7:2]) # 切片超出范围不会报错,能取到最后一位
列表的相关操作
1,增
1. 增
+ 列表的合并
ban1 = ['Carrey', '流星']
ban2 = ['神铭','清华北大']
# 合班
he_ban = ban1+ban2
print(he_ban)
append() 把元素添加到末尾
lst1 = [1,2,3]
lst1.append('9502')
# print(lst1) # [1, 2, 3, '9502']
lst1.append(['音之韵','随缘'])
print(lst1) # [1, 2, 3, '9502', ['音之韵', '随缘']]
extend() 把元素添加到末尾,但是会展开元素添加
lst1 = [1,2,3]
# lst1.extend('无念') # [1, 2, 3, '无', '念']
print(lst1)
lst1.extend(['音之韵','随缘']) # 添加列表
print(lst1) # [1, 2, 3, '无', '念', '音之韵', '随缘']
insert(索引位置,插入元素) 插队 ---往后挤
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
lst3.insert(2, '兮云')
print(lst3) # [1, 2, '兮云', 3, '无', '念', '音之韵', '随缘']
lst3.insert(-2, 'carrey')
print(lst3) # [1, 2, '兮云', 3, '无', '念', 'carrey', '音之韵', '随缘']
lst3.insert(1, ['carrey','哈哈'])
print(lst3)
2,删
删除
del
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
del lst3
print(lst3)
del lst3[2]
print(lst3) # [1, 2, '无', '念', '音之韵', '随缘']
pop() 指定下标删除
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
lst3.pop(4)
print(lst3)
# 不指定下标时,默认删除最后一个
lst3.pop()
print(lst3)
remove(元素值) 通过元素值删除
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
lst3.remove(3)
print(lst3) # [1, 2, '无', '念', '音之韵', '随缘']
lst3.remove(3)
print(lst3) # 如果删除的值在列表中没有,则会报错
clear() 清空
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
lst3.clear()
print(lst3) # []
3,改
3. 修改 本质是赋值
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
print(lst3[4])
lst3[4] = '无念'
print(lst3)
4,查
4.查
index(查询元素,开始下标,结束下标)
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘']
print(lst3.index('音之韵'))
print(lst3.index('音之韵', 3, 7))
print(lst3.index('音之韵', 0, 3)) # 指定范围内查找不到时会报错
count() 统计次数
lst3 = [1, 2, 3, '无', '念', '音之韵', '随缘',1,4,1]
# 求1出现的次数
print(lst3.count(1)) # 3
5,排序
5.排序
lst4 = [7, 9, 3, 6]
# 倒置---颠倒
lst4.reverse()
print(lst4) # [6, 3, 9, 7]
# sort()
lst4.sort()
print(lst4) # [3, 6, 7, 9] 默认从小到大进行排序
# 从大到小进行排序
lst4.sort(reverse=True)
print(lst4) # [9, 7, 6, 3]
6,列表去重
# 列表去重(不保持原来的顺序)
l_1 = list(set(l1))
print(l_1) # [1, 2, 3, 4, 5, 6, 7, 8]
# 列表去重(保持原来的顺序)
l0 = []
for i in l1:
if i not in l0:
l0.append(i)
print(l0)
2,元组
元组:元素不能修改(纯元组形式) --- 提高代码的安全性
tup1 = (1, 2, 3)
print(type(tup1)) # <class 'tuple'>
只有一个元素的元素, 一定要加一个逗号
tup2 = (1)
print(type(tup2)) # <class 'int'>
tup2 = (1,)
print(type(tup2)) # <class 'tuple'>
元组的查询
查 index(元素值)
tup3 = (1,2,3)
t = tup3.index(2)
print(t)
元组"可变"的情况
元素中有可变类型(列表,字典等)的数据
t3 = (1, 2, 3, ['hehe', 88])
print(t3[3]) # ['hehe', 88]
print(t3[3][0]) # hehe
t3[3][0] = 'haha'
print(t3) # (1, 2, 3, ['haha', 88])
列表和元组的区别: 1.列表是动态数组,它们可变且可以重设长度(改变其内部元素的个数)。 2.元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。 3.元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。
3,字符串
str = 'qwert12345'
print(type(str)) # <class 'str'>
字符串的操作
增
*增
join:添加
s1 = 'alex'
s = '+'.join(s1) # 输出的结果是a+l+e+x
print(s)
s1 = ['a1', 'a2', 'a3', 'a4']
s = ':'.join(s1) ## 列表转换成字符串 a1:a2:a3:a4 <class 'str'> 前提:s1中的元素都必须是字符串
print(s, type(s))
删
*删
print(s.strip()) # lstrip消除左侧的,rstrip消除右侧--消除字符串空格,制表符,换行符
改
upper,lower,capitalize,title:字母的大小写变化
s = 'I love python'
s1 = s.upper() ## 字母全部大写 实际中应用于验证码的认证
s2 = s.lower() ## 字母全部小写
s3 = s.capitalize() ## 第一个单词第一个字母大写其他小写
s4 = s.title() ## 每个单词第一个字母大写
print(s1) # I LOVE PYTHON
print(s2) # i love python
print(s3) # I love python
print(s4) # I Love Python
替换
replace:替换
msg = 'alex很厉害,alex是老男孩教育的创始人之一'
msg1 = msg.replace('alex','abc') ## 默认全部被替换(新,旧,次数(不定义时默认全部替换))
msg2 = msg.replace('alex','abc',1) # 替换一个
print(msg1) # abc很厉害,abc是老男孩教育的创始人之一
print(msg2) # abc很厉害,alex是老男孩教育的创始人之一
切片
split:切片,分割---将字符串分割成列表
s = 'a1:a2 a3 a4:a5'
l = s.split() #按照空格将字符串分割转化成列表
l = s.split(':') #按照:将字符串进行分割转化成列表
print(l)
s = 'pyTHon全栈期'
s2 = s1[-1:-5:-1] # 分片
print(s2, type(s2))
查
*查
find(),index()用法一样
s = 'I love python'
b = s.find('lo',0,)
b = s.index('lo')
print(b) # 2
count:计算
s1 = 'sdfsdgsjighwuedvsjhgs;udfhgo'
print(s.count('g')) # 4
startswith(),endswitch(),isupper(),islower(),isdigith():判断
s = 'taiBAi'
print(s.startswith('t')) # True # 判断s字符串以t开头
print(s.endswith('i')) # True # 判断字符串以i结尾
print(s.startswith('B', 3, 6)) # True # 判断3-6的子字符串是不是以B开头
print(s.islower()) # False # 判断是否都是小写组成
print(s.isupper()) # False # 判断是否都是大写组成
print(s.isdigit()) # False # 判断是否都是数字组成
4,字典
字典的创建三种方式
方式一
dic1 = dict((('one', 1), ('two', 2), ('tree', 3))) # 利用dict函数将元组转化为字典
print(dic1) # {'one': 1, 'two': 2, 'tree': 3}
方式二
dic2 = dict(one=1, two=2, tree=3) # 利用dict函数将键值对转化为字典
print(dic2) # {'one': 1, 'two': 2, 'tree': 3}
方式三
dic3 = dict({'one':1,'two':2,'tree':3})
print(dic3) # {'one': 1, 'two': 2, 'tree': 3}
基础操作
求长度
dic1 = {'name': '老余', 'age': 18, 'sex': '男'}
print(dic1)
# len() 求长度
print(len(dic1))
增、改
增,改
dic1['sex'] = '女' # 改
print(dic1)
dic1['weight'] = '50kg' # 增(有则修改,无则添加)
print(dic1)
setdefault()
dic1.setdefault('hobby', '球类运动')
dic1.setdefault('sex', 20) # 已经有age不会改变
print(dic1) # {'name': '老余', 'age': 18, 'sex': '男', 'hobby': '球类运动'}
删
*删 del,pop(),clear()
del.dic1['weight'] # 删
print(dic1)
ren1 = dic1.pop('age') # 删
ren2 = dic1.pop('hobby','没有此键')
print(ren2) # 没有此键
print(dic1)
dic1.clear() # 清空字典
print(dic1) # {}
查
print(dic1['name']) # 查
*get()
s1 = dic1.get('hobby','没有此键') # 用来查找
print(s1) # 没有此键
print(dic1.get('id', 'id不存在')) # 查寻时如果没有可以返回指定的语句而不报错
update 的用法--有主键就更新,没有主键就添加
dic1.update({'weight': 50}) # 添加
print(dic1)
dic1.update(weight=60) # 更新
print(dic1)
fromkeys、keys、values、items
fromkeys
dic = dict.fromkeys('abc',100) # {'a': 100, 'b': 100, 'c': 100}
dic = dict.fromkeys([1, 2, 3], [])
dic[1].append(666) # {1: [666], 2: [666], 3: [666]} 共用一个,一个变全都变
print(dic)
print(dic1.keys()) # 返回字典的键值
for key in dic1.keys():
print(key)
print(dic1.values()) # 返回字典的值
for value in dic1.values():
print(value)
print(dic1.items()) # 返回字典的所有值 生成列表
for i in dic1.items():
print(i)
批量删除
批量删除
dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
把主键含有‘k’的元素删除
方法一
l1 = []
for key in dic:
if 'k' in key:
l1.append(key)
for i in l1:
dic.pop(i)
print(dic)
方法二
for key in list(dic.keys()):
if 'k' in key:
dic.pop(key)
print(dic)
循环一个字典时,如果这个改变字典的大小,就会报错。
5,集合
集合--集合是可变的但是元素是不可变的(可哈希)不能是列表,字典 用处--数据之间的关系,列表去重
创建集合
集合的创建
set1 = {1, 2, 3, 'Barry', False, 74} # {False, 1, 2, 3, 'Barry', 74} 顺序会变
set = set() # 空集合
print(set1, type(set))
增
增:
add()
set1.add('xx')
print(set1)
update()--迭代增加(字符串,列表,元组)
set1.update('sdtjfgmvxnfs') # {False, 1, 2, 3, 's', 'f', 'v', 74, 'g', 't', 'x', 'Barry', 'd', 'j', 'm', 'n'}
print(set1)
删
remove()--按照元素删除
set1.remove('Barry') # {False, 1, 2, 3, 74}
print(set1)
# pop()--随机删除
set1.pop()
print(set1.pop()) # 显示删除 1
print(set1) # {2, 3, 74, 'Barry'}
改
#改(变相改值--先删再改)
set1.remove('Barry')
set1.add('女神')
print(set1)
集合的运算
# 集合的运算
# 交集
set2 = {1, 2, 3, 4, 5}
set3 = {4, 5, 6, 7, 8}
set4 = set2 & set3 # '&' {4, 5}
print(set4)
# 并集
set5 = set2 | set3
print(set2 | set3)
print(set5) # '|' {1, 2, 3, 4, 5, 6, 7, 8}
# 差集--不同的元素 差集谁减谁结果不同
set6 = set2 - set3
set7 = set3 - set2
print(set6) # {1, 2, 3}
print(set7) # {8, 6, 7}
# 反交集'^'
set8 = set2 ^ set3 # '^' {1, 2, 3, 6, 7, 8}
print(set8)
# 子集issubset()
set_1 = {1, 2, 3}
set_2 = {1, 2, 3, 10}
set_3 = {1, 2, 3, 4, 5, 6}
print(set_1 < set_2) # 输出的是布尔值True
print(set_1.issubset(set_2))
# 超子集issuperset()
print(set_2 > set_3) # False
print(set_2.issuperset(set_3))
更多内容可以查看自己学python的过程,简单笔记。-CSDN博客
更多内容可以查看自己学python的过程,简单笔记。-CSDN博客
更多内容可以查看自己学python的过程,简单笔记。-CSDN博客