Python基础(4)——列表list常用操作

列表list常用操作

序列是Python中最基本的数据结构,它支持字符,数字,字符串甚至可以包含列表(即嵌套)

列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切片也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始

列表的特征

a. 列表元素可包含任意类型的对象:数值、字符串、列表、元组等

b. 通过下标索引访问序列中的值

c. 可随意变换列表长度,相当于随意指定新的列表

d. 可嵌套,即列表中的元素包含列表

e. 可改变某一位置元素的值

列表与生成器

range()是生成器,指向了一个左闭右开的范围,比如说:

range(5)代表指向了0,1,2,3,4这几个值

range(2,5)代表指向了2,3,4这几个值

另外,这里也是有步长的概念,如下:

range(0,10,2)代表指向了0,2,4,6,8这几个值,最后的2代表步长

可变列表list常用操作

【添加元素】

.append()方法:

可添加元素,括号中无论数据类型是什么,它都仅仅充当这个列表的一个元素

.extend()方法:

用新列表扩展原来的列表,即把括号中的列表元素一一放入这个列表中

这里需要注意.append()方法 和 .extend()方法 的区别

【删除元素】

.remove()方法:

移除列表中某个值的第一个匹配项

.clear()方法:

移除所有值,变成一个空列表

del语句:

删除list的相应索引值

【插入元素】

.insert(i,m)方法:

在索引i处插入m,这里索引i代表第i+1个值,更改的是数据源,并不是生成新的数据

【复制】

.copy()方法:

复制一个新的列表,新列表不指向原列表(虽然两个列表值相同)

这里为什么要需要一个复制的操作呢?难道不可以直接用赋值'='直接给新列表赋予旧列表的值吗?因为如果用'=',新列表是指向旧列表的,倘若旧列表改变了,新列表也会随之改变。看下面的代码比较一下吧

【排序】

.sort()方法:

括号中可写参数reverse,不填默认为reverse=False,默认时为升序排序/字母顺序

.sorted()方法:

排序并复制,括号中的参数reverse也是和上面一样的

另外,讲一讲元组Tuple

之前讲过,元组相当于不可变的“列表”,所以数据源是不能更改的,不能索引删除,只能用del语句整个元组删除;另外,索引和切片的操作和列表是一样的。

序列通用函数:

len()、连接(+)、重复(*)、max()、min()

tuple()函数:

将列表转换为元组

练习:

① 现有一个列表name = ['小明', '小红'] ,增加“小刚”的名字上去

② 创建一个range,用print输出其值,以及数据类型

③ m=range(10),请问m[2],m[-1],m[5]是多少

④ x.append('abc')和x.extend('abc')的区别

⑤ m=[4,5,6,73,4,4,4,4,2],删除2,删除所有的4

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181010G0PM9P00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券