python中的元组 1.定义:元组(tuple)是Python中常用的一种数据结构。元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。元组是'写保护'的,即元组中元素作为一个整体,创建后不能再做任何修改操作。
2.元组表达符为:tuple=() 3.元组的定义:tuple1=(1,2,3) 注意:当元组只有一个元素时,后面要加逗号,如:tuple1=(1,) 例子1: tuple1=(1,'26','test',[99,'test']) print(tuple1) # 输出:(1, '26', 'test', [99, 'test']) print(type(tuple1)) # <class 'tuple'> 例子2: tuple2='88' print(tuple2) # 输出:88 print(type(tuple2)) # <class 'str'> 例子3: tuple3=('88',) # 当元祖只有一个元素时,后面要加逗号 print(tuple3) # 输出:('88',) print(type(tuple3)) # <class 'tuple'> 常见操作 1)想要修改元祖本身的数据:先把元祖转换为可变的数据类型,修改后再转换回元祖 1.1)通过list()强制把元祖转换为列表 例子: tuple1=(1,'26','test',[99,'test']) list1=list(tuple1) print(list1) # 输出:[1, '26', 'test', [99, 'test']] print(type(list1)) # <class 'list'> 1.2)通过tuple() 把列表转换为元祖 例子: list1=[1, '26', 'test', [88, 'test']] tuple1=tuple(list1) print(tuple1) # 输出: (1, '26', 'test', [88, 'test']) print(type(tuple1)) # <class 'tuple'>
2)修改元祖中的列表元素 例子: tuple1=(1,'26','test',[99,'test']) print(tuple1[3][0]) # 输出:99 tuple1[3][0] = 'duoceshi' # 修改元祖中的列表元素 print(tuple1) # 输出:(1, '26', 'test', ['duoceshi', 'test'])
元组和列表的区别 相同: a、都是序列类型(有序)的容器对象,可以存放任何类型的数据 b、支持切片、迭代等操作 不同: a、list 是可变的对象,元组tuple是不可变的对象 b、tuple不可变,所以使用tuple可以使代码更安全
Python的字典 1.定义: 1)字典(dict)是另一种可变容器模型,且可存储任意类型对象。字典的每个键值key:value对用冒号 : 分割,每个键值对之间用逗号分割,整个字典包括在大括号 {} 中 2)字典同时是无序,字典都是以键值对的形式存在,先键后值,键是唯一的,值且不唯一 2.字典表达符:{} 3.字典的定义方式: 方式一:通过{}直接定义: 字典名={键名:值,键名:值,键名:值...} dict1={'name':'duoceshi','age':18} 方式二:通过dict()方法把列表转换为字典: 列表名=[(键名,值),(键名,值)..] 字典名=dict(列表名) dict1 = [('a',1),('b',2),('c',3)] dict2 = dict(dict1) 字典中常见的函数 1)字典的赋值操作:如果所写的键不存在,则是添加一个新的键,并赋值;如果存在,则是覆盖掉之前的值 例子1: dict1 = {'name': 'xiaomeng', 'age': 18} dict1['class']=2026 # 添加一个键class,赋值2026 print(dict1) # 输出:{'name': 'xiaomeng', 'age': 18, 'class': 2026} 例子2: dict1 = {'name': 'xiaomeng', 'age': 18} dict1['name']='duoceshi' print(dict1) # 输出:{'name': 'duoceshi', 'age': 18}
2)取字典中所有的键 ===> for循环遍历 例子: dict2 = {'name': 'xiaomeng', 'age': 18,'class':2026} for i in dict2: # 完整是 : for i in dict2.keys(),因为key是唯一的,所以可不写 print(i) # 输出:name,age,class
3)取字典中所有的值 ===> for循环遍历 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} for i in dict1.values(): print(i) # 输出:xiaomeng,18,2026
4)通过键取对应的值 print(字典名[键名]) 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} print(dict1['name']) # 输出:xiaomeng
5)添加键值对 setdefault(键名,值) 例子: dict1 = {'name': 'xiaomeng', 'age': 18} dict1.setdefault('class',2026) print(dict1) # 输出:{'name': 'xiaomeng', 'age': 18, 'class': 2026}
6)根据键删除键值对,键不存在,值就不存在: del 字典名[键名] 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} del dict1['name'] print(dict1) # 输出:{'age': 18, 'class': 2026}
7)删除字典 del 字典名 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} del dict1 print(dict1) # 该字典已经被删除,因此查询不到,报错
8)通过for循环遍历字典,拿到所有的键和值 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} for i in dict1: # 变量i 就是 字典dict1里面所有的数据 print(i,dict1) # i 拿取的是键,dict 拿取的是值
9)for循环+items() 遍历字典,拿到所有的键和值 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} for k,v in dict1.items(): print(k,v) # k是键,v是值 10)pop函数:删除指定的键,返回删除的键的值 pop(键名) 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} dict1.pop('name') #删除键 print(dict1) # 输出:{'age': 18, 'class': 2026} print(dict1.pop('age')) # 输出:18 返回被删除的键的值 11)clear() 清空字典所有的项 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} dict1.clear() print(dict1) # 输出:{} 12)get方法,通过键获取值,当键不存在时,返回None get(键名) 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} print(dict1.get('name')) # 输出:xiaomeng print(dict1.get('name1')) # 输出:None 13)fromkeys函数 : 可以给具体的键指定值,返回一个新的字典。 fromkeys([键名],值) ==> 键名可以写多个且可以是不存在的键名,值只能写一个 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} print({}.fromkeys(['name','age'])) # 没有指定默认值,输出:{'name': None, 'age': None} print({}.fromkeys(['name','age'],'duoceshi')) # 指定默认值,输出:{'name': 'duoceshi', 'age': 'duoceshi'} 14)has_key函数:在Python3中没有这个函数了 ===> __contains__函数 检查字典是否有指定的键,有返回True,没有返回False 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} print(dict1.__contains__('name')) # 输出:True 15)popitem函数:随机返回并删除字典中的键值对(一般删除末尾对),如果字典已经为空,却调用了此方法,就报出KeyError异常 例子: dict1 = {'name': 'xiaomeng', 'age': 18,'class':2026} print(dict1.popitem()) # 返回被删除的键值对,输出:('class', 2026) print(dict1) # 输出:{'name': 'xiaomeng', 'age': 18} 16)update函数:利用一个字典更新另一个字典,如果更新的键在原来的字典中存在,则会覆盖键原来的值 例子: dict1={'name':'xiaomeng','age':18} dict2={'sex':1,'age':2026} # sex 性别 用1和0表示 <== 速度更快 dict1.update(dict2) # dict1 使用了update这个方法,把dict2的数据更新进来 print(dict1) # 输出:{'name': 'xiaomeng', 'age': 2026, 'sex': 1} Python的集合 1.定义:集合 分为 可变集合set 和 不可变集合frozenset,是 一个无序的不重复的序列,集合有一个重要的功能:去重 例子: test='hello' a=set(test) print(a) # 输出:{'o', 'e', 'l', 'h'} 去重了l,且每次输出顺序都不一致 可变集合set 1)clear() 清除 例子: test='hello' a=set(test) a.clear() print(a) # 输出:set() 2)pop函数:删除最开始的字符,由于每次都是无序排列,因此无法判断删除哪一个字符 例子: test='hello' a=set(test) a.pop() print(a) 3)remove函数:移除(删除)指定的字符 例子: test='hello' a=set(test) a.remove('o') print(a) # 输出:{'e', 'l', 'h'} 4)add函数:添加元素 例子: test='hello' a=set(test) a.add(888) print(a) # 输出:{'e', 'h', 'l', 888, 'o'} print(type(a)) # <class 'set'> 5)for循环遍历集合 例子: test='hello' a=set(test) for i in a: print(i) print(type(i)) # <class 'str'> 3.不可变集合frozenset 1)copy函数:复制 test='hello' a=frozenset(test) b=a.copy() print(b) # 输出:frozenset({'o', 'h', 'e', 'l'}) 每次输出顺序不一致 Python中的数据类型(结构):字符串、列表、元祖、字典、集合 不可变:元祖、不可变集合frozenset 可变:字符串、列表、字典、可变集合set 无序:字典、集合 有序:列表、元祖
|