Task04列表、元组和字符串

列表、元组和字符串

  • 可变(mutable)对象: 列表、字典、集合
    所谓可变是指可变对象的值可变,身份是不变的。
  • 不可变(immutable)对象:数字、字符串、元组、键
  • 映射类型:字典
  • 序列类型:字符串,元组,列表
    不可变对象就是对象的身份和值都不可变。新创建的对象被关联到原来的变量名,旧对象被丢弃,垃圾回收器会在适当的时机回收这些对象。
  • 容器数据类型
    列表<class 'list'>
    元组<class 'tuple'>
    字典<class 'dict'>
    集合<class 'set'>
    字符串<class 'str'>
  • 简单数据类型
    整型<class 'int'>
    浮点型<class 'float'>
    布尔型<class 'bool'>
  • 涉及到通过索引值获取元素的,都是x[]是中括号,x可是列表、元组、字符串
  • 列表、元组和字符串的共同点
    都可以通过索引得到每一个元素
    默认的第一个元素的索引值是0
    可以通过切片得到一个范围内的元素的集合
    有很多共同的操作符

06列表

笔记

在这里插入图片描述

  • 列表定义语法为:[元素1, 元素2, …, 元素n]

  • 二维列表:[[元素1, 元素2, ..., 元素n],[元素1, 元素2, ..., 元素n],....]

  • 列表的元素可以是任何对象,列表中所保存的是对象的指针

  • 可以通过列表构建数组,x=[a]*4操作中,若a发生改变,则4个a都会发生改变

  • 列表的元素可以更改(mutable),对应操作:
    附加(append,extend)
    插入(insert)
    删除(remove,pop)

  • appendextend的区别:append只能添加一个参数,并保持该参数原有数据类型(任何类型的都可),把一个东西整体放在原列表后。extend是用新序列扩展原序列,要补充的参数必须放在中括号[]里,可以补充多个参数

  • del x[m:n]删除索引值m到n-1的元素

  • 如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del;如果在删除元素后还能继续使用它,就使用pop()

  • 浅拷贝与深拷贝:
    浅拷贝(shallow copy)只复制指向某个对象的指针,而不复制对象本身,新旧对象共享同一块内存,改变就对象
    深拷贝(deep copy)会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象
    浅拷贝与深拷贝的对比

  • sort:排序规则reverse = True 降序, reverse = False 升序(默认)

  • lambda匿名函数

  • 列表相关参考

练习sort

1、 列表操作练习
列表lst 内容如下
lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

  1. 请写程序完成下列操作:
  2. 在列表的末尾增加元素15
  3. 在列表的中间位置插入元素20
  4. 将列表[2, 5, 6]合并到lst中
  5. 移除列表中索引为3的元素
  6. 翻转列表里的所有元素
  7. 对列表里的元素进行排序,从小到大一次,从大到小一次
#列表操作练习
lst=[2, 5, 6, 7, 8, 9, 2, 9, 9]
#1.在列表的末尾增加元素15
lst.append(15)
#2.在列表的中间位置插入元素20
lst.insert(5,20)
#3.将列表[2, 5, 6]合并到lst中
lst=lst+[2,5,6]
#4.移除列表中索引为3的元素
lst.remove(lst[3])
#5.翻转列表里的所有元素
lst.reverse()
#6.对列表里的元素进行排序,从小到大一次,从大到小一次
lst.sort(reverse=False)#从小到大
lst.sort(reverse=True)#从大到小

2、修改列表

问题描述:

lst = [1, [4, 6], True]

请将列表里所有数字修改成原来的两倍

#修改列表
lst = [1, [4, 6], True]
lst[0]=lst[0]*2
lst[1][0] *= 2
lst[1][1] *= 2

3、leetcode 852题 山脉数组的峰顶索引

如果一个数组k符合下面两个属性,则称之为山脉数组

数组的长度大于等于3

存在 i i i i i i >0 且 i < len ⁡ ( k ) − 1 i<\operatorname{len}(k)-1 i<len(k)1, 使得 k [ 0 ] < k [ 1 ]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值