Python基础语法_5

列表和元组的概念

  • 列表、元组:程序员在代码中批量表示数据的方式
  • 列表和元组的大部分功能都是相同的,但是有一个明显的差别:列表可以修改,但是元组不能修改
  • 列表相当于散装辣条,元组相当于袋装辣条

列表的创建和下标访问

可以在创建列表的时候使用 [ ] 指定列表的初始值,元素之间使用英文逗号分隔

a = [1,2,3,4]
print(a)

 可以在一个列表里放不同类型的元素

a = [1,'hello',True,[2,3,4]]
print(a)

可以使用下标(索引)访问的方式获取列表中的元素(下标访问运算符[ ])

Python中的下标从0开始计数(C语言开创的先例)

a = [1,2,3,4]
print( a[2] )

可以使用下标修改列表中的元素

a = [1,2,3,4]
a[2] = 66
print(a[2])

可以使用内建函数len()来获取列表的长度(元素个数),和字符串很相似

a = [1,2,3,4]
print( len(a) )

使用下标访问列表元素时,下标大小不能超过最大值

值得注意的是,列表的下标可以写成负数

a = [1,2,3,4]
print( a[len(a) - 1] )
print( a[-1] )

 列表的切片操作

a = [1,2,3,4]
print( a[1:3] )
  • 如上所示,切片操作中[ ]里面的两个数字表示了一段区间
  • 1表示开始的下标,3表示结束的下标,但这是一个前闭后开的区间(不包括下标为3的下标)
  • 切片操作是一个比较高效的操作,只会取出原来列表的一个部分,不涉及“数据的拷贝”

使用切片时省略边界 

 带有步长的切片操作


列表的遍历操作

遍历:将一个列表中的每一个元素依次取出来,并对它们进行某种操作

遍历的操作有很多种,我们在下面一一列举,但是基本上第一种使用最为频繁

  • 创建elem变量在for循环中遍历列表元素

  • 创建变量i,以下标的方式遍历列表中的元素

  • 创建变量i,在while循环中以下标的方式遍历列表中的元素


列表的插入操作

使用append()函数往列表末尾新增一个元素

使用insert()函数往列表中的任意位置添加元素


列表的查找和删除

使用in来判定某个元素在列表中是否存在

使用index,根据内容来寻找某个元素在该列表中的下标

使用pop删除列表最末尾的元素

使用pop删除任意位置的元素(根据下标)

使用remove,根据值来删除对应的元素


列表的拼接

使用+拼接列表

生成了一个更大的列表,原有的列表保持不变

使用extend拼接列表(extend没有返回值)

将后一个列表的内容拼接到前一个列表上

使用+=拼接列表(不推荐,相比于第二种方式多了很多操作)


元组的操作

元组的创建:使用 ( ) 或者 turple( )

但值得注意的是,下标访问依旧采用 [ ]

元组的很多操作和列表都是相同的,但这些操作指的是只读操作,因为元组是不可以更改的

函数中的return语句返回多个值的时候,实际上是按照元组的方式进行工作的

然后我们采用多元赋值的方式接收元组

如下图代码所示

元组的优势:协同开发时保护实际参数

协同开发时,A写好的函数让B去调用

但是B会有疑虑:我将参数传给这个函数,那么这个函数要是修改我传的参数怎么办

我们则可以借助元组解决这个问题,因为元组是不能修改的


字典的创建

  • 键值对是计算机中一个非常重要的概念
  • 键(key)、值(value):根据key能够快速找到value(映射关系)
  • Python的字典中可以包含很多的键值对,但是所有的键不能重复
  • 字典中的键的类型不一定都一样,值的类型也不一定都一样
  • 字典对于键的类型有约束,但是对于值的类型没有约束


 字典查找key

使用 in / not in 来判定某个 key 在字典中是否存在(与value无关)

使用 [ ] 根据 key 来获取 value

  • 对于列表来说,使用 in 比较低效(需要遍历列表),使用 [ ] 比较高效(类似于数组取下标)
  • 对于字典来说,两者都非常高效(字典的背后使用了特殊的数据结构:哈希表)

字典的新增、修改和删除

使用 [ ] 新增和修改字典的元素

使用 pop 方法,根据 key 删除键值对


 理解哈希表的效率(字典的背后是哈希表)

  • 遍历:将一个可迭代对象里面包含的元素依次取出来,并进行一些操作,整个过程要求不重不漏
  • 字典被设计的初衷是为了增删查改,而不是为了遍历
  • 字典属于哈希表,进行增删查改的效率很高(常数级的时间复杂度,操作的时间不会因为元素数量而变化),而遍历的效率要差一些
  • 数据结构最重要的就是哈希表

字典的遍历

下图所示为典型的例子


 可哈希的类型(可作为key的类型)

  • 不是所有的类型都可以作为字典的key
  • 字典的本质是一个哈希表,哈希表的key的要求就是“可哈希的”,也就是可以使用hash()计算出一个哈希值
  • 不可变的对象一般就是“可哈希的”,可变的对象一般就是“不可哈希的”
  • 列表和字典都是“不可哈希的”
  • 字典、列表和元组都是Python中非常常用的内置类型,内部可以包含不同的元素(容器或者集合类)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值