python基础知识学习笔记之常用数据类型操作
1、列表
- 1.1、列表的概念和定义
-
概念:列表是
有序
的可变
的元素集合。 -
定义:
- 方式1:[ 元素1, 元素2…]
names = ["zhangsan", "lisi", "wangwu"] print(names, type(names))# 列表可以嵌套 names = ["zhangsan", "lisi", "wangwu", ["a", "b", "c"]] print(names, type(names))
- 方式2:
列表生成式:
nums = range(99) print(nums, type(nums))nums = range(1, 99, 2) print(nums, type(nums))
列表推导式:
语法:[表达式 for 变量 in 列表] 或 [表达式 for 变量 in 列表 if 条件]nums = [1, 2, 3, 4, 5] resultlist = [i**2 for i in nums] print(resultlist)resultlist = [i**2 for i in nums if i % 2 != 0] print(resultlist)
-
- 1.2、列表增加操作
# l.append(object): 往列表中追加一个新元素 nums = [1, 2, 3, 4, 5] nums.append(6) print(nums)# l.insert(index, object): 往列表指定索引之前插入一个元素 nums = [1, 2, 3, 4, 5] nums.insert(3, 7) print(nums)# l.extend(iterable): 往列表中扩展另外一个可迭代序列 nums = [1, 2, 3, 4, 5] nums2 = ['a', 'b', 'c', 'd'] nums.extend(nums2) print(nums)# 加法运算 nums = [1, 2, 3] nums2 = ['a', 'b'] print(nums + nums2)# 乘法运算 nums = [1, 2] print(nums * 3)
- 1.3、列表删除操作
# del语句: 删除一个指定的元素(对象) nums = [1, 2, 3, 4, 5] del nums[1] print(nums)# l.pop(index=-1): 移除并返回列表中指定索引对应的元素 nums = [1, 2, 3, 4, 5] nums.pop(3) print(nums)# l.remove(object): 移除列表中指定的元素。如果存在多个元素,则只会删除最左边的一个 nums = [1, "abc", 2, 3, "abc", 4] nums.remove("abc") print(nums)
- 1.3、列表修改操作
nums = [1, 2, 3, 4, 5] nums[3] = 7 print(nums)
- 1.4、列表查找操作
# index(value, start=None, stop=None): 获取元素索引。如果有多个相同的值,则返回最左边元素的索引 nums = [1, 2, 3, 4, 5] idx = nums.index(4) print(idx)# count(): 获取指定元素的个数 nums = [1, 4, 2, 5, 3, 4, 5] c = nums.count(4) print(c)# items[start:end:step]: 获取多个元素 nums = [1, 4, 2, 5, 3, 4, 5] pic = nums[2:4:1] print(pic)# 反转列表 pic = nums[::-1] print(pic)
- 1.5、列表遍历操作
# 根据元素进行遍历 values = ['a', 'b', 'c', 'd'] for v in values:print(v)# 根据索引遍历 values = ['a', 'b', 'c', 'D', 'e'] for i in range(len(values)):print(values[i])# 通过枚举对象遍历 values = ['a', 'b', 'c', 'D', 'e'] for i, v in list(enumerate(values)):print(i, v)# 通过迭代器进行遍历 values = ['a', 'b', 'c', 'D', 'e'] it = iter(values) for v in it:print(v)
- 1.6、列表的判定和比较
# 判定: value in list 和 value not in list values = ['a', 'b', 'c', 'D', 'e'] print("a" in values)# 比较 print([1, 2, 3] > [2, 3]) print([1, 2, 3] < [2, 3])
- 1.7、列表的排序
# 1.使用内建函数 sorted(itrearble, key=None, reverse=False) values = ['2', '3', '1', '4', '3'] print(sorted(values)) print(sorted(values, reverse=True))values = [("sz", 18), ("sz3", 16), ("sz1", 17), ("sz2", 15)] def getKey(x):return x[1] print(sorted(values, key=getKey, reverse=True))# 2.使用 list.sort(key=None, reverse=False) values = ['2', '3', '1', '4', '3'] print(values.sort(reverse=True), values)
- 1.8、列表的乱序和反转
# 乱序 import random values = ['2', '3', '1', '4', '3'] print(random.shuffle(values), values)# 反转 # 1. l.reverse() values = ['2', '3', '1', '4', '3'] print(values.reverse(), values)# 2.切片反转 values = ['2', '3', '1', '4', '3'] print(values[::-1])
2、元组
- 2.1、元组的概念
元组是有序
的不可变
的元素集合。和列表的区别是,元组元素不能修改。 - 2.2、元组的定义
# 1.一个元素的写法 t = (123,) print(t, type(t))# 2.多个元素的写法 t = (1, 2, "a", [1, 2, 3]) print(t, type(t))# 3.多个对象,以逗号隔开,默认为元组 t = 1, 2, "abc", [1, 2] print(t, type(t))# 4.列表转换为元组 l = [1, 2, 3, 4] t = tuple(l) print(t, type(t))# 5.元组嵌套 t = (1, 2, 3, (4, 5)) print(t, type(t))
- 2.3、元组的查询
t = (1, 2, 3, 4, 5) print(t[0], t[1], t[-1]) print(t[0:3]) print(t[::-1])
- 2.4、元组的获取
# 统计元组中指定元素的个数 t = (1, 2, 3, 1, 5) print(t.count(1))# 获取元组中指定元素的索引 t = (1, 2, 3, 1, 5) print(t.index(3))# 获取元组中元素的个数 t = (1, 2, 3, 1, 5) print(len(t))# 返回元组中元素的最大值 t = (1, 2, 3, 1, 5) print(max(t))# 返回元组中元素的最小值 t = (1, 2, 3, 1, 5) print(min(t))
- 2.5、元组的判定和比较
# 判定 t = (1, 2, 3, 1, 5) print(7 in t) print(2 in t)# 比较 # 针对每个元素,从左到右一一比较 t1 = (1, 2) t2 = (2, 3) print(t1 > t2) print(t1 < t2)
- 2.6、元组的拼接和拆包
# 拼接 print((1, 2) + (3, 4)) print((1, 2) * 3)# 拆包 a, b = (1, 2) print(a, b)# 变量交换 a = 1 b = 2 a, b = (b, a) print(a, b)