python中列表和元组的用法
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,概念列表列表是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。
千家信息网最后更新 2024年11月28日python中列表和元组的用法
概念
列表
列表是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
# 列表# 赋值、删除列表元素、分片赋值# 1. 列表元素的赋值values = ["Bill", "Mary", "John"]values[0] = "Mike"values[1] = 10.4values[-1] = "Joe"# values[-5] = "abc" # 抛出异常print(values) # ['Mike', 10.4, 'Joe']# 删除列表中的元素numbers = [1,2,3,4,5,6,7,8]del numbers[3]print(len(numbers)) # 7 print(numbers) # [1, 2, 3, 5, 6, 7, 8]# 分片赋值names = ["Bill", "Joe", "李宁","马云"]print(names[3:]) # ['马云']names[3:] = ["a","b","c"]print(len(names)) # 6print(names) # ['Bill', 'Joe', '李宁', 'a', 'b', 'c']name = list("John") # 将一个字符串转化为一个列表 print(name) #['J', 'o', 'h', 'n']name[2:] = list("e") print(name) ## ['J', 'o', 'e']print(numbers) # [1, 2, 3, 5, 6, 7, 8]# 删除 和del 函数差不多 但是del只能删除一个 numbers[3:6] = []print(numbers) # [1, 2, 3, 8]--------------------列表与元组的加法 乘法data1 = [1,2,3,4]data2 = [2,3,4,5,"hello"]data3 = data1 + data2print(data3) # [1, 2, 3, 4, 2, 3, 4, 5, 'hello']num1 = (1,2,3,4)num2 = (3,4,'ff')num3 = num1 + num2print(num3) # (1, 2, 3, 4, 3, 4, 'ff')如何把一个元组 强制的转化为一个列表呢?num1 = (1,2,3,4)print(list(num1)) # [1, 2, 3, 4] 如何把一个列表 强制转化为一个元组呢?data1 = [1,2,3,4]print(tuple(data1)) # (1, 2, 3, 4) 列表与元组的乘法a1 = [1,2,3,4]print(a1 * 2) # [1, 2, 3, 4, 1, 2, 3, 4]b1 = (2,3,4,5)print(b1 * 3) # (2, 3, 4, 5, 2, 3, 4, 5, 2, 3, 4, 5)字符串乘法: print('a' * 10) # aaaaaaaaaaprint('a,' * 10) # a,a,a,a,a,a,a,a,a,a,data1 = [1,2,3,4]num2 = (3,4,'ff')print(data1 + list(num2) * 2) # [1, 2, 3, 4, 3, 4, 'ff', 3, 4, 'ff'] 先做乘法 再做加法 from sqlalchemy.sql.expression import falseprint("--------append方法---------") # append:在列表最后(结尾)插入新的值,改变原来的列表numbers = [1,2,3,4,5]numbers.append(20)print(numbers) #[1, 2, 3, 4, 5, 20]numbers.append("hello") # 这个值可以为字符串numbers.append([1,2,3]) # 也可以为另外一个列表 print(numbers) #[1, 2, 3, 4, 5, 20, 'hello', [1, 2, 3]]print("---------clear方法---------") # clear:用于清除列表的所有内容names = ["Bill", "Mary"]print(names) #['Bill', 'Mary']names.clear()print(names) #[]print("----------copy方法----------") # copy:用于复制一个列表a = [1,2,3,4,5]acopy = aacopy1 = a[:] #通过分片复制列表 acopy1 和 a 这2个列表的值是完全一样的 但是是2个不同的序列 acopy2 = a.copy()a[3] = "hello" #这一步的目的是 要改变 3这个位置上的数print(acopy) #[1, 2, 3, 'hello', 5]print(acopy1) #[1, 2, 3, 4, 5]print(acopy2) #[1, 2, 3, 4, 5]# 分片的方式或者是copy的方式 就是一个副本print("----------count方法-----------") # count:用于统计某个元素在列表中出现的次数search = ["he", "new", "he", [1,2,3],"he", "world", "peter",[1,2,3]]# 搜素"he"在search出现的次数print(search.count("he")) # 3print(search.count([1,2,3])) # 2print(search.count(20)) # 如果没有找到指定的列表元素,返回0print("------extend方法------") # extend:用于在列表结尾插入另一个列表,也就是让两个列表首尾相接。a = [1,2,3]b = [4,5,6]a.extend(b)print(a) # [1, 2, 3, 4, 5, 6] a 这个列表改变了 a[2] =123print(a) # [1, 2, 123, 4, 5, 6]a = [1,2,3]b = [4,5,6]x = aa = a + bx[2] = 543print(a) # [1, 2, 3, 4, 5, 6]print(x) # [1, 2, 543] print("------index方法------") # index:用于从列表中找出某个值第一次出现的索引位置numbers = [5,3,6,8]print(numbers.index(6)) # 2 6的位置上2 # print(numbers.index(10)) # 如果指定的值在列表中不存在,会抛出异常print("-------insert方法-------") # insert:用于将值插入到列表中的指定位置 //这个方法可以取代append 因为可以在列表中的任意位置插入numbers = [1,2,3,4,5]#numbers.insert(3,"four") # [1, 2, 3, 'four', 4, 5]#print(numbers)# 使用分片赋值完成同样的效果numbers[3:3]="four"print(numbers) # [1, 2, 3, 'f', 'o', 'u', 'r', 4, 5] numbers[3:3] = ["four"] # 开始索引和结束索引相等 不代表任何的元数 只是光标到达此位置 把这个位子代表4这个位子print(numbers) # [1, 2, 3, 'four', 4, 5]print("-------pop方法-------") # pop:用于移除弹出列表中的元素(默认是最后一个元素),并返回该元素的值numbers = [1,2,3]print(numbers.pop()) # 默认不指定的话 就弹出 最后一个元数 3 结果为3print(numbers.pop(1)) # 弹出第索引位子为1的元素 1表示 要弹出位子的索引 结果为2print(numbers) # 我们弹出了2次 就剩下一个1 了 结果为 [1]print("---------remove方法---------") # remove:用于移除列表中某个值的第一次匹配项 words = ["he", "new", "he","yes"]words.remove("he")print(words) # 结果为 ['new', 'he', 'yes'] 只移除第一个 出现的第一个 print("------reverse方法--------") # reverse:用于将列表中的元素反向存放numbers = [1,2,3,4,5,6,7]numbers.reverse() # [7, 6, 5, 4, 3, 2, 1] 倒序 如果执行2次 那么就又正面返回了print(numbers)# 用分片的方法 第一个为开始索引 结束索引 步长 print(numbers[len(numbers)::-1]) # 结果为 [7, 6, 5, 4, 3, 2, 1] print("--------sort方法-------") # sort:用于对列表进行排序,调用该方法会改变原来的列表numbers = [4,3,1,7,4,83,2,-3]numbers.sort() print(numbers) # [-3, 1, 2, 3, 4, 4, 7, 83] 排序 是一种升序的排序 改变了原来的列表 # 要是不想改变原来的列表怎么办?#方法1:使用分片或者copy的方法 将这个列表复制一份 然后在排序numbers1 = [4,3,1,7,4,83,2,-3]numbers2 = numbers[:] # 分片复制方法 很简单 numbers2.sort()print(numbers1) # [4, 3, 1, 7, 4, 83, 2, -3]print(numbers2) # [-3, 1, 2, 3, 4, 4, 7, 83]numbers3 = numbers1.copy() # 用copy的方法 复制print(numbers3) # [4, 3, 1, 7, 4, 83, 2, -3]#方法2 我们不使用sort这个函数 因为他改变了原来的列表 我们使用 sorted函数 这个函数是返回排好序的列表 sorted函数 不改变原来列表的顺序# 可以对任意的序列进行排列 ,可以对字符串进行排列x = [5,4,7,2]y = sorted(x)print(x) # [5, 4, 7, 2]print(y) # [2, 4, 5, 7]# 对字符串进行排序print(sorted("www.baidu.com")) # ['.', '.', 'a', 'b', 'c', 'd', 'i', 'm', 'o', 'u', 'w', 'w', 'w']# 利用askm值进行排序 从低到高# 我们可以通过关键字 让他降序排列x = [4,6,2,8,44,56,22]x.sort(reverse = True) # 关键字 reverse 为true 为降序 ;如果 为flase为升序 默认为升序 # reverse:用于将列表中的元素反向存放print(x) # [56, 44, 22, 8, 6, 4, 2]x.sort(reverse = False)print(x) # [2, 4, 6, 8, 22, 44, 56]
元组和列表的操作基本上上一样的,操作呢基本上是相同的,只有一点不一样,元组是只读的,元组是不可以修改的,列表中的所有修改操作,元组都不支持# 元组# 元组的定义是用 () 来定义的 a = () # 这里就是定义了一个空的元组 b = (1,2,3)c = 1,2,3,4,5 # 这样的方式也是定义一个元组 基本上不用这个 print(c) # (1, 2, 3, 4, 5)x = (30,) # 这里一定要加 , 要不然就会当成一个值去处理了 print(x) # (30,)print((12) * 12) # 144 这里的12没有加, 就会当成一个值去处理 print((12,) * 12) # (12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12) 这里就是当成了一个元组去操作的 aa = (1,2,4)aa = aa.index(2)print(aa) # 结果为 1 index:用于从列表中找出某个值第一次出现的索引位置 aa = (1,2,4,2,2)# aa = aa.index(2)aa = aa.count(2)print(aa) # 结果为3 count:用于统计某个元素在列表中出现的次数 // 元组理论上只支持 index 和 count 方法 names = ["Bill", "Mike", "John", "Mary"]numbers = ["1234", "4321", "6789", "6543"]print(numbers[names.index("Mike")]) #4321print(names[numbers.index("6543")]) # Mary
方法
元素
索引
位置
结果
序列
排序
函数
字符
字符串
乘法
位子
数据
不同
升序
就是
方式
方括号
次数
第一次
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
银川数字化法治文化展馆软件开发
比安交易所服务器
公安部提示网络安全
无线网络技术国内外研究
数据库中的表怎么改格式
sql 数据库的安全性
武汉极兔互联网科技
小朋友网络安全知识问答
云朵互联网科技查流量
联想服务器esxi
网络技术科技分享
互联网软件开发管理流程
一迈网络安全吗
陕西手机软件开发费用
为什么日本韩国一个服务器
服务器内存满了会宕机吗
网上购药软件开发计划
it工作的软件开发
二道江怎么进入数据库
全国网络安全公司分布
宁海公司应聘网络安全管理
永康靠谱软件开发地址
事业单位网络安全专项检查自查表
农家乐规划软件开发
服务器处于离线状态怎么开启
云服务器传输视频最大速度
利峰软件开发有限公司
美国大学 数据库
开封企业财务软件开发
数据库自身的分页技术