当前位置: 首页>编程日记>正文

python基础知识3——列表和元组

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)
    

相关文章: