Loading

4-列表使用及元组

列表的操作

  • 遍历列表
    • for n in list1
    • for i, v in enumerate(list1)
    • 从后向前遍历
      • print(list(range(10, 1, -1)))
      • for i in range(len(ages)-1, -1, -1):
        • print(ages[i])
  • 切片/截取
    • print(ages[:])
    • print(ages[2:])
    • print(ages[::-1])
      • 相当于倒序
  • 合并
    • list1 + list2
  • 重复
  • 判断成员
    • print(n in list2)

列表的增删改查

    • append() :在列表的末尾追加元素
    • extend() :将另一个列表中的元素追加到当前列表
      • ages = [2, 3, 4, 5]
      • ages.extend([6, 7, 8])
    • insert(index, element) :在指定的下标位置插入一个元素
      • ages = [2, 3, 4, 5]
      • ages.insert(2, 100)
    • pop(index) :删除指定下标位置的元素,并返回该元素
    • remove() :删除指定的元素
    • clear() :清空列表
    • del
      • ages = [1, 34, 667, 86]
      • del ages[:]
    • ages = [1, 34, 667, 86]
    • ages[0] = 100
    • print(ages[0])

列表的高级方法

  • 索引
    • index(element, start,stop) :查找指定元素在列表中第一次出现的下标位置
    • print(list1.index(3, 3, 6))
  • 内置函数
    • sum
    • max
    • min
  • 排序
    • 升序
      • sort() :升序:从小到大
        • list3.sort()
    • 降序
      • list3.sort(reverse=True)
    • sorted :排序,但是不会改变原列表,得到一个新列表
      • list5 = sorted(list3, reverse=True)
    • 倒序/逆序/反转
      • list3 = [3, 1, 5, 10, 34]
        • list3.reverse()
      • reversed() :倒叙,但是不会改变原列表
        • list4 = reversed(list3)

拷贝/复制

  • 可变类型和不可变类型(基本类型和引用类型)
    • 不可变类型int,float,str,tuple
    • 可变类型list,dict,set
  • 内存
    • 内存:栈区,自动释放;堆区,不会自动释放
    • 对于引用/可变类型,数据存在堆内存,栈内存存储堆内存的地址
  • 浅拷贝(只能搞定一层拷贝)
    • list5 = [1, 2, 3]
    • list6 = list5.copy()
    • list6[2] = 100
    • print(list5, list6) # [1, 2, 3] [1, 2, 100]
  • 深拷贝:不管有多少层,都可以拷贝
    • import copy
    • list5 = [1, 2, 3, [4, 5]]
    • list6 = copy.deepcopy(list5) # 深拷贝
    • list6[-1][-1] = 100
    • print(list5, list6) # [1, 2, 3, [4, 5]] [1, 2, 3, [4, 100]]
  • 二维列表

数学函数和随机数

  • 绝对值
    • print(abs(-3)) # 绝对值,3
  • 四舍五入
    • print(round(3.4327)) # 3print(round(3.34294, 4)) # 四舍五入,保留四位小数3.3429
  • math模块
    • print(math.pow(2, 3), pow(2, 3), 2 ** 3) # 8.0 8 8 求次方
    • print(math.sqrt(4)) # 2 开平方根
    • print(math.pi) # Π
    • print(math.sin(math.pi/6)) # 正弦
  • 随机数
    • import random
    • random.choice() :在列表中随机取一个元素
    • random.randint(start, end) :取值范围[start, end]
    • random.randrange(start, end, step) :取值范围[start, end)
    • print(random.random()) # 取小数,范围[0, 1)
    • print(random.uniform(2, 5)) # 取小数,范围[2, 5)
    • random.shuffle(list1) # 乱序

tuple

  • 元组和列表的区别

    • 和列表类似
    • 区别:①元组就是不可改变的列表. ②列表使用[],元组使用()
  • 创建元组

    • t = (1,) # 只有一个元素的元组,要加逗号
  • 元组的基本操作

    • print(t[0])= # 注意是中括号
  • 排序和反转只能用sorted, reversed

  • 元组中的列表时可以修改的

  • 列表与元组的相互转换

    • l = list(t)
  • 快速取值
    a, b, c = (1, 2, 3)

列表的其他内置函数

  • filter过滤函数的作用是对列表进行过滤,只保留满足filter()函数指定要求的元素
    • def f(x):
      • return x % 2 != 0 and x % 3 != 0
      • list(filter(f, range(2, 25)))
  • map映射函数的作用是对列表的每一个元素映射到map()函数指定的操作
    • def cube(x):
      • return xxx
      • lsit(map(cube, range(1, 11)))
  • reduce函数是reduce(function, sequence, starting_value),它对sequence中的item顺序迭代调用function,如果有starting_value,可以作为初始值调用
    • def add(x, y):
      • return x + y
      • reduce(add, range(1, 11))

列表推导式

  • 对于使用过滤和映射函数去生成特定要求的列表,可以使用列表推导式简化代码
    • [k*5 for k in a if k!= 3]
posted @ 2020-11-19 14:20  lotuslaw  阅读(92)  评论(0编辑  收藏  举报