青岛谷歌网站建设,全国推广优化网站,邯郸做移动网站价格,做情趣网站违法吗数据容器是存储和管理数据的核心工具#xff0c;其核心作用是 “批量存储数据”#xff0c;数据容器包括#xff08;列表、元组、字典#xff09;。列表列表是 Python 最常用的容器#xff0c;能存储任意类型数据#xff08;数字、字符串、甚至其他容器#xff09;…数据容器是存储和管理数据的核心工具其核心作用是 “批量存储数据”数据容器包括列表、元组、字典。列表列表是 Python 最常用的容器能存储任意类型数据数字、字符串、甚至其他容器支持增删改查适合需要动态调整的数据集。列表创建方式# 空列表 list1 [] # 普通列表混合类型 list2 [1, Python, True, [2, 3]] # 快速生成列表range/列表推导式 list3 list(range(1, 6)) # [1,2,3,4,5] list4 [x*2 for x in range(3)] # [0,2,4]列表的常用方法# append(val)末尾添加单个元素。 #参数val要添加的任意类型元素 list2.append(10) # extend(iterable)末尾追加可迭代对象如列表、元组 # 参数iterable可迭代对象元素会被逐个加入列表 list2.extend([6, 7]) # insert(index, val)指定位置插入元素 # 参数1index插入的目标索引原索引及之后元素后移 # 参数2val要插入的任意类型元素 list2.insert(1, Java) # pop(index)删除指定索引元素默认删除最后一个 # 参数index可选要删除的元素索引默认-1 # 返回值被删除的元素 deleteVal list2.pop(0) # remove(val)删除第一个匹配的元素 # 参数val要删除的元素值需存在于列表中 list2.remove(2) # index(val)查找元素首次出现的索引 # 参数val要查找的元素值需存在于列表中 # 返回值元素对应的索引 index1 list2.index(Python) # sort()对列表原地排序修改原列表 # 可选参数reverseTrue/False默认为True升序排列false是降序排列、 key排序的依据函数 list3.sort() # sorted()返回排序后的新列表不修改原列表 # 参数iterable要排序的列表其他参数同sort() new_sorted_list sorted(list, reverseTrue) # len(list)获取列表长度 # 参数list目标列表 # 返回值列表中元素的个数 list_length len(list2)注意1. 索引大于列表长度在使用时会越界产生报错因此使用索引时需先判断索引范围2.嵌套列表可通过多层索引访问例如list2[3][1]→ 取子列表 [2,3] 的第二个元素 3。元组元组时不可修改的有序集合也可以说是 “只读版的列表”一旦创建无法修改元素性能优于列表适合存储固定不变的数据如坐标、函数返回多值。创建方式# 普通元组 tuple1 (1, 2, test) # 空元组 tuple2 () # 元组中只包含一个元素时必须在后面加逗号否则会被视为普通变量 tuple3 (5,) # 正确 tuple4 (5) # 错误实际是整数5 # 省略括号元组打包 不推荐使用 tuple5 10, 20, 30元组的常用方法和函数# index(val)查找元素首次出现的索引 # 参数val要查找的元素值需存在于元组中 # 返回值元素对应的索引 index_result tuple1.index(2) # count(val)统计元素出现的次数 # 参数val要统计的元素值 # 返回值元素在元组中出现的次数 count_result tuple1.count(1) # len(tuple)获取元组的长度元素个数 # 参数tuple目标元组 # 返回值元组的元素数量 tuple_length len(tuple1) # 解包将元组元素依次赋值给多个变量 # 规则变量数量需与元组元素数量一致 a, b, c tuple1注意1.不可修改仅指 “元素本身”此部分牵扯到数据容器在内存的存储方式若元组嵌套列表列表内部可修改如t (1, [2,3]); t[1].append(4)合法2.函数返回多值本质是元组def func(): return 1,2 → a,b func()等价于接收元组3.元组可作为字典的键列表不行dict_key {(1,2): value}合法。字典字典是键值对的无序集合字典以 “键 - 值key-value” 为单位存储数据键唯一且不可变字符串 / 数字 / 元组值可任意修改。创建方式# 普通字典 dict1 {name: 张三, age: 20, gender: 男} # 空字典 dict2 {} # 字典推导式 dict3 {x: x*2 for x in range(3)} # {0:0, 1:2, 2:4} # 从键值对列表创建 dict4 dict([(a, 1), (b, 2)])常用方法和函数# 1. 准备一个示例字典来解释其函数和方法 dict1 {name: 张三, age: 20, gender: 男} # 初始字典 # keys()获取所有键返回可迭代的dict_keys对象 # 无参数 keys_result dict1.keys() # 执行后keys_result → dict_keys([name, age, gender]) # 可转成列表使用list(keys_result) → [name, age, gender] # values()获取所有值返回可迭代的dict_values对象 # 无参数 values_result dict1.values() # 执行后values_result → dict_values([张三, 20, 男]) # items()获取所有键值对返回包含(key,value)元组的可迭代对象 # 无参数 items_result dict1.items() # 执行后items_result → dict_items([(name, 张三), (age, 20), (gender, 男)]) # keys、values、items常用于遍历中 for key in dict1.keys(): print(key) for value in dict1.values(): print(value) for k, v in dict1.items(): print(f{k}: {v}) # get(key, 默认值)获取指定键的值键不存在时返回默认值 # 参数1key要查找的键 # 参数2默认值可选键不存在时返回默认None height dict1.get(height, 170) # 执行后height → 170因为dict1中无height键返回默认值170 # pop(key)删除指定键并返回对应的值 # 参数key要删除的键需存在于字典中 # 返回值被删除键对应的value pop_value dict1.pop(age) # 执行后dict1 → {name: 张三, gender: 男}pop_value → 20 # update(dict)批量更新/添加键值对 # 参数dict包含要更新/添加的键值对的字典 dict1.update({age: 21, city: 北京}) # 执行后dict1 → {name: 张三, gender: 男, age: 21, city: 北京} # len(dict)获取字典中键值对的数量 # 参数目标字典 length len(dict1) # 执行后length → 4当前dict1有4个键值对注意1.键必须是唯一的重复定义键会产生覆盖如{a:1, a:2}最终是{a:2}2.键是不可变的且列表不能作为键因为列表是可变的元组可以3.字典是无序的不依赖索引顺序来进行查找按键查找才是最快最便捷的方式。列表、元组、字典的对比函数函数是将 “特定逻辑” 封装成独立模块实现代码复用、降低冗余的核心机制核心是 “定义 - 调用” 的闭环。其中涉及的一些概念封装将一段重复执行的代码包裹成函数调用时只需写函数名无需重复写代码形参函数定义时的参数占位符如def add(a, b)中的 a、b实参函数调用时传入的具体值如add(1,2)中的 1、2返回值函数执行后输出的结果通过return关键字无 return 则返回None。函数的定义与调用# 定义函数 def 函数名(形参): 逻辑体 return def add(a, b): #两数相加 result a b return result # 返回计算结果 # 调用函数函数名(实参) res add(3, 5) # 实参3、5传给形参a、bres接收返回值8 print(res) # 输出8函数的参数传递1.位置参数默认按 “形参定义顺序” 传入实参顺序错误会导致结果异常即函数可以有多个参数每个参数之间用逗号‘’隔开这些参数在调用传入实参时会被位置参数按顺序接收。2.关键字参数按 “键 值” 形式传参无需关注顺序可读性更高直接使用 ‘形参名字实参’ 进行传参。3.可变参数也叫不定长参数*args接收任意数量的位置参数打包成元组**kwargs接收任意数量的关键字参数打包成字典#不定长参数会将接收到的参数打包成元组使用 def sum_all(*args): total 0 for num in args: total num return total print(sum_all(1,2,3)) # 输出6args(1,2,3) #不定长关键字参数将接收到的参数打包成字典使用 def print_kwargs(**kwargs): for k, v in kwargs.items(): print(f{k}: {v}) print_kwargs(name赵六, city上海) # kwargs{name:赵六,city:上海}函数嵌套函数内部可定义 / 调用另一个函数内层函数可访问外层函数的变量闭包基础。def outer_func(a): # 内层函数 def inner_func(b): return a b # 访问外层函数的变量a # 调用内层函数 return inner_func(5) print(outer_func(3)) # 输出835注意1.函数内部定义的变量默认是 “局部变量”仅在函数内生效如需使用全局变量需加global进行声明2.函数也可作为参数传递可传给其他函数3.一定避免重复定义函数同名函数会覆盖之前的定义需注意命名唯一性。并且尽量将函数的名字命名得和功能有联系。