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)