元组
不可变数据类型,元素的值不可以修改的,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) # 差集,第一个集合去掉和第二个集合相同的内容