|
列表(list)与元组(tuple)
列表的格式
>- [数据1,数据2,数据3,数据4,......]
>- 列表可以存储多个数据,数据之间的逗号以英文分割而且可以数据是不同类型的数据,列表是可变数据类型。
>- 空列表 list_data = [] 或者 list_data = list()
- # 使用 [ ] 直接创建列表
- li = [1,2,3,4,"张三","李四"]
- # 使用 list() 函数创建列表
- li2 = list('123456789')
复制代码 列表的常规操作
> 列表的作用是⼀次性存储多个数据,程序员可以对这些数据进行的操作有:增、删、改、查等等
访问列表中的值
- # 使用索引访问列表元素的格式为:name_list[i]
- name_list = ['张三', '李四', '王五','赵六']
- print(name_list[0])
- print(name_list[1])
- print(name_list[2])
复制代码- # 使用切片访问列表元素的格式为:name_list[start : end : step]
- name_list = ['张三', '李四', '王五','赵六']
- print(name_list[0:4:2])
复制代码 常用内置函数
方法描述append()在列表最后添加一个数据pop()从列表中删除一个数据,默认删除(根据索引)最后一个sort()对数据进行排序,默认从小到大排序reverse()倒置列表count()统计列表中的某一个数据出现的次数index()查找索引extend()把可迭代对象里的数据一个一个追加到列表中remove()删除某个数据insert()插入数据clear()清空列表中的数据copy()复制列表- # append() 在列表的最后添加一个数据
- list_data = []
- new_data = list_data.append("小明")
- print(new_data)
- print(list_data)
- # pop() 从列表中删除一个数据,默认删除(根据索引)最后一个,相当于pop(-1)
- list_data = [1, 2, 3, 4, 5, 6, 7]
- data = list_data.pop()
- print(list_data) # [1, 2, 3, 4, 5, 6]
- print(data) # 7
- list_data.pop(0)
- print(list_data) # [2, 3, 4, 5, 6]
- # sort(key,reverse) 对数据进行排序,默认从小到大排序,即默认是reverse=False
- # 其他数据类型也是可以进行排序的,是根据ascll码对应数值大小进行排序
- list_data = [2, 3, 9, 6, 5, 2, 1]
- list_data.sort()
- print(list_data) # [1, 2, 2, 3, 5, 6, 9]
- list_data.sort(reverse=True)
- print(list_data) # [9, 6, 5, 3, 2, 2, 1]
- # reverse() 倒置列表
- list_data = [1, 3, 2]
- list_data.reverse()
- print(list_data) # [2, 3, 1]
- # count() 统计列表中的某一个数据出现的次数,这里需注意,不仅判断数值大小,其数据类型也相同才会计数
- list_data = [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
- data = list_data.count(1) # 这里与前面的方法不同,这个会返回一个值,需要变量来接收
- print(list_data) # [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
- print(data) # 3
- print(list_data.count(2)) # 1
- print(list_data.count('2')) # 3
- # index() 查找索引,如果该数据有多个返回最前面的一个
- list_data = [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
- data = list_data.index(1) # 这里与前面的方法不同,这个会返回一个值,需要变量来接收
- print(list_data) # [1, 3, 2, 3, 3, 1, 1, '2', '2', '2']
- print(data) # 0
- # extend(可迭代对象) 把可迭代对象里的数据一个一个追加到列表中
- list_data1 = [1, 3, 2]
- list_data2 = [4, 5, 6]
- list_data3 = "小明"
- print(list_data1 + list_data2) # [1, 3, 2, 4, 5, 6]
- list_data1.extend(list_data2) # 这里与前面的方法不同,这个会返回一个值,需要变量来接收
- print(list_data1) # [1, 3, 2, 4, 5, 6]
- list_data1.extend(list_data3)
- print(list_data1) # [1, 3, 2, 4, 5, 6, '小', '明']
- # remove() 删除某个数据,有多个时删除最前面的
- list_data = [1, 2, 3, 2]
- list_data.remove(2)
- print(list_data) # [1, 3, 2]
- # insert(index, object) 插入数据
- list_data = [1, 2, 3]
- list_data.insert(0, "小明") # 0代表需要插入的位置的索引,”小明“为所需要插入的数据
- print(list_data) # ['小明', 1, 2, 3]
- # clear() 清空列表中的数据
- list_data = [1, 2, 3]
- list_data.clear()
- print(list_data) # []
- # copy() 复制列表 深复制 浅复制
- list_data1 = [1, 2, 3]
- list_data2 = list_data1
- list_data2.pop()
- print(list_data2) # [1, 2]
- print(list_data1) # [1, 2]
- list_data1 = [1, 2, 3]
- list_data2 = list_data1
- list_data2 = list_data1.copy()
- list_data2.pop()
- print(list_data2) # [1, 2]
- print(list_data1) # [1, 2, 3]
复制代码 修改列表元素
>Python 支持通过切片语法给一组元素赋值。在进行这种操作时,如果不指定步长(step 参数),Python 就不要求新赋值的元素个数与原来的元素个数相同;这意味,该操作既可以为列表添加元素,也可以为列表删除元素。
- name_list = ['张三', '李四', '王五','赵六']
- name_list[0] = '阿坤'
- print(name_list)
复制代码- nums = [40, 36, 89, 2, 36, 100, 7]
- #修改第 1~4 个元素的值(不包括第4个元素)
- nums[1: 4] = [45.25, -77, -52.5]
- print(nums)
复制代码 列表的循环遍历
- name_list = ['张三', '李四', '王五','赵六']
- for i in name_list:
- print(i)
复制代码- i = 0
- name_list = ['Tom', 'Lily', 'Rose']
- while i < len(name_list):
- print(name_list[i])
- i += 1
复制代码 列表的嵌套
> 所谓列表嵌套指的就是⼀个列表⾥⾯包含了其他的⼦列表- list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
- print(list1[1]) # [4, 5, 6]
- print(list1[1][1]) # 5
复制代码 元组(tuple)
>- (数据1,数据2,数据3,数据4,......)
>- 不可变数据类型,元组不可修改,列表中的元组也不可以修改,但元组中的列表可以修改。
>- 单个数据的元组,需要定义为tuple_data = (1, ),需要在后面加一个逗号
>- 空元组 tuple_data = () 或者 tuple_data = tuple()
元组数据查找
- tuple1 = ('aa', 'bb', 'cc', 'bb')
- print(tuple1[0])
复制代码
- index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index⽅法相同。
- tuple1 = ('aa', 'bb', 'cc', 'bb')
- print(tuple1.index('aa')) # 0
复制代码
- count():统计某个数据在当前元组出现的次数。
- tuple1 = ('aa', 'bb', 'cc', 'bb')
- print(tuple1.count('bb')) # 1
复制代码- tuple1 = ('aa', 'bb', 'cc', 'bb')
- print(len(tuple1)) # 4
复制代码 del删除
- del,当创建的元组不再使用时,可以通过 del 关键字将其删除
- tup = ("python","yyds")
- print(tup)
- del tup
- print(tup) # NameError: name 'tup' is not defined
复制代码 元组数据不能修改
- # 元组内的直接数据如果修改则⽴即报错
- # 但是如果元组⾥⾯有列表,修改列表⾥⾯的数据则是⽀持的。
- tup = (1, 2, 3, [4, 5])
- print(tup, id(tup)) # (1, 2, 3, [4, 5]) 1455401272328
- tup[-1].append(6)
- print(tup, id(tup)) # (1, 2, 3, [4, 5, 6]) 1455401272328
复制代码 可变类型与不可变类型
>可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。
不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。- """数值"""
- a = 1
- print(a, id(a)) # 1 1440395456
- a = a + 1
- print(a, id(a)) # 2 1440395488
- """字符串"""
- b = 'a'
- print(b, id(b)) # a 2463434018520
- b = b.upper()
- print(b, id(b)) # A 2463434215920
- """列表"""
- li = [1, 2, 3, 4, 5]
- print(li, id(li)) # [1, 2, 3, 4, 5] 2464553888584
- li.append(6)
- print(li, id(li)) # [1, 2, 3, 4, 5, 6] 2464553888584
- """元组"""
- tup = (1, 2, 3, [4, 5])
- print(tup, id(tup)) # (1, 2, 3, [4, 5]) 2464553829384
- tup[-1].append(6)
- print(tup, id(tup)) # (1, 2, 3, [4, 5, 6]) 2464553829384
复制代码 来源:https://www.cnblogs.com/daguo118/p/17311336.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|