python基础(下)

本文详细介绍了Python中的不可变数据类型——元组及其操作,包括元素获取、组合和不可修改性。同时讲述了列表(可变)和字典的使用,以及集合的特性、运算和内置函数。
摘要由CSDN通过智能技术生成

元组

不可变数据类型,元素的值不可以修改的,Python序列数据类型,可以存储多个元素,通过()括起来,每个元素之间通过,隔开,可以为任意类型

特别注意:一个元素的元组,元素后面加,号
tup1=('NN',221,(1,2),[1,2])
print(type(tup1))
tup2=('NULL',)
print(type(tup2))

在这里插入图片描述

获取元组中的某个值

# 下标
tup1=('NN',221,246)
print(tup1[1])

# 切片,和字符串切片一样
tup1=('NN',221,246)
print(tup1[1:2])

在这里插入图片描述

修改元组的值

不可以修改,但是可以通过+或*连接组合, in/not in判断是否有对应元素

tup1=('NN',221,246)
tup3=('MS246',)
new=tup1[0:2]+tup3
print(new)
new2 = tup3*2
print(new2)

在这里插入图片描述

常用方法

tup = (5, 3, 7, 34, 74, 3, 3, 3, 24, 56, 36, 86, 35, 77)
print(tup.count(3)) # 统计指定元素有几个
print(tup.index(3)) # 获取指定元素下标,只会获得第一个

在这里插入图片描述

删除元组或元组的元素

只能del 删除整个元组

del new2

列表

序列数据类型,类似于tuple元组,他们之间区别:元组是不可变,list可变数据类型,列表可以存储多个元素,元素与元素之间通过,隔开,通过[ ]表示,元素的类型可以为任意类型

list1=['jeffery','MS246','MS240']
print(list1)
list2=[]
print(list2)
list4=['01','02',['03','NN']]
print(list4)
l2 = list('fjfdsklagjsflag')
print(l2)

在这里插入图片描述

获取列表中的元素

# 下标
list1=['NN',221,246]
print(list1[1])
# 切片,和字符串切片一样
list2=['NN',221,246]
print(list2[1:2:2])
print(list2[::-1])

在这里插入图片描述

修改列表元素的值

# 按照索引改值
l1=['我是我爱你','ww',3,'33','33eede']
l1[0] = '男神'
# 按照切片改(了解)
l1[2:] = 'fsdaf'
print(l1)

在这里插入图片描述

#按照切片(步长)(了解)
l1=['我是我爱你','ww',3,'33','33eede']
l1[::2] = 'abc'
print(l1)

在这里插入图片描述

删除列表元素或者列表

list1=[2,3,4,5]
# 删除某个元素
del list1[-1]
print(list1)
# 删除整个列表
list3=['abcdef']
del list3

在这里插入图片描述

list常用的运算符

in/not in + *

list1=["2","r"]
new=["A",'B']*2
name211=list1+new
print(name211)

在这里插入图片描述

常用方法

列表的常用方法

# list1 = ['NN', 221, 'NN', 246, 'MS246']
# list1.append('坚果') # 列表最后添加新元素(追加新元素)
# list1.extend([6, 7, 8]) # 追加多个元素
# list1.insert(0, 333) # 指定索引位置,添加元素
# value = list1.pop() # 默认移除最后的一个元素,可以指定下标,返回删除的值
# list1.remove('NN') # 根据指定的值进行移除,,如果有重名元素,默认删除从左数第一个
# list1.reverse() # 反转列表元素
# list1 = [123, 221, 0, 246, 56]
# list1.sort() # 排序 默认升序
# list1.sort(reverse=True) # 降序
# list1.clear() # 清空列表元素
# index_value = list1.index('MS246') # 获取元素下标
# print(index_value)
# count_value = list1.count('NN') # 统计列表有几个指定元素
# print(count_value)
# tup1 = (1, 2, 3)
# print(type(tup1))
# list2 = list(tup1) # 元组转换列表
# print(list2)
# print(type(list2))
# len_value = len(list1) # 获取列表长度
# print(len_value)
# print(list1)
# list1 = [123, 221, 0, 246, 56]
# print(min(list1)) # 获取最小值
# print(max(list1)) # 获取最大值

列表推导式(了解)

[表达式 for 变量 in 旧列表] 或者 [表达式 for 变量 in 旧列表 if 条件]

b = ['tom', 'lily', 'hom']
r = [name for name in b if len(name) > 3]
print(r)
r = [name.capitalize() for name in b if len(name) > 3]
print(r)

在这里插入图片描述

字典

通过{}括起来,元素以key:value(键值对)的方式来表示,元素与元素之间通过,隔开

key必须是唯一的,value可以不唯一
key必须是不可变数据类型,比如key可以number/string
# 方式一:
dic = dict((('one', 1), ('two', 2), ('three', 3)))
print(dic) # {'one': 1, 'two': 2, 'three': 3}
# 方式二:
dic = dict(one=1, two=2, three=3)
print(dic)
# 方式三:
dic = dict({'one': 1, 'two': 2, 'three': 3})
print(dic)
# 字典的嵌套
dic = {
'name': '汪峰',
'age': 48,
'wife': [{'name': '国际章', 'age': 38},],
'children': {'girl_first': '小苹果','girl_second': '小怡','girl_three': '顶顶'}}
print(dic)

在这里插入图片描述

获取字典中元素

info={"s"="beijing"}
print(info["adress"]) # 获取没有的元素抛异常
print(info.get("adress")) # 获取没有的元素不会抛异常

在这里插入图片描述
在这里插入图片描述

修改字典某个元素

#修改,有相同的可以修改值,没有新增
info={"id":"3"}
info["id"]="MS230"
print(info)
# 同时有多个数据实现修改
info1={'name':"郭然然","id":"ms230","adress":"上海"}
info2={'name':"郭然然2","pre_xz":"15k","bre_xz":"20k","gs":"zjtd"}
info1.update(info2)
print(info1)
# 删除
del info["id"]

在这里插入图片描述

常用函数

info = {'a':1, 'b':2}
print(len(info)) # 获取字典长度
print(str(info)) # 字典转化为字符串
dict2={"c":4}
info.update(dict2) # dict2的数据更新到字典中
print(info.values()) # 获取字典所有的value
info.popitem() # 删除字典中最后的一对键值对
print(info.pop('hhh', '查不到')) # 根据给定的key进行删除
print(info.keys()) # keys列出所有键
print(info.items()) # 同时获取key,value的值
print(info.get('age')) # 取出指定键的值,没有的元素不会抛异常
print({}.fromkeys('name', 100)) # 创建字典
a = info.setdefault('sex', 'M')
print(a) # 类似get方法,获取元素的值,但是当key不存在,则添加key并,默认为None,否则取默认值
print(info.copy()) # 复制字典,浅copy
print(info.clear()) # 清空内容

在这里插入图片描述
在这里插入图片描述

集合

容器型的数据类型,它要求它里面的元素是不可变的数据,但是它本身是可变的数据类型。集合是无序的,一般用来去重

set1 = set({1, 3, 'Barry', False})
set1 = {1,2,3,4,51,5,(1,2,3),"yangyang"}
print(set1)
# 空集合:
set1 = set()
print(set1)
# 列表的去重 ***
l1 = [1,'太白', 1, 2, 2, '太白',2, 6, 6, 6, 3, '太白', 4, 5, ]
set1 = set(l1)
l1 = list(set1)
print(l1)

在这里插入图片描述

集合运算符

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 & set2) # 交集,取出两个集合都存在的内容
print(set1 | set2) # 并集,将两个集合去重合并
print(set1 - set2) # 差集,第一个集合去掉和第二个集合相同的内容
print(set1 ^ set2) # 反交集,合并两个集合并且都去掉重合的内容,把脚踩2只船的人T出去
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1 < set2) # 子集
print(set2 > set1) # 超集

在这里插入图片描述

内置函数

set1 = {'太白金星', '景女神', '武大', '三粗', 'alexsb', '吴老师'}
print(len(set1)) #获取元素的个数 len
set1.add('xx') # 添加指定内容
print(set1)
set1.update('fdsafgsd') # update迭代着增加
print(set1)
set1.remove('alexsb') # remove 按照元素删除
print(set1)
set1.pop() # pop 随机删除
print(set1)
set1.discard('景女神') # 删除
print(set1)
print('景女神' in set1) # 查询是指定内容是否存在
s_1024 = {"佩奇", "老男孩", "海峰", "马JJ", "老村长", "黑姑娘", "Alex"}
s_pornhub = {"Alex", "Egon", "Rain", "马JJ", "Nick", "Jack"}
print(s_1024.isdisjoint(s_pornhub)) # 判断2个集合是不是不相交,返回True or False
print(s_1024.issubset(s_pornhub)) # 判断s_1024是不是s_pornhub的子集,返回Trueor False
print(s_1024.issuperset(s_pornhub)) # 判断s_1024是不是s_pornhub的父集,返回Trueor False
new2=s_1024.union(s_pornhub) # 并集,将两个集合去重合并
new2=s_1024.intersection(s_pornhub) # 交集,取出两个集合都存在的内容
new2=s_1024.symmetric_difference(s_pornhub) # 反交集,合并两个集合并且都去掉重合的内容,把脚踩2只船的人T出去
new2=s_1024.difference(s_pornhub) # 差集,第一个集合去掉和第二个集合相同的内容

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值