python列表详解


众所周知,python内置四种常用的数据结构:

  • 列表(list)
  • 元组(tuple)
  • 字典(dict)
  • 集合(set)

其中列表和元组相似,它们都按顺序保存元素,每个元素都有自己的索引,因此列表和元组都可通过索引访问元素。二者的区别在于元组是不可修改的,但列表是可修改的。
字典(dict)和集合(set)类似,它们存储的数据都是无序的,其中字典是用 key-value 的形式保存数据


列表

列表是python语言显著区别于其他语言的 一种数据结构,其设计更加灵活,可以弥补字符串本身的各种缺陷
列表是可变序列,也是一种可以存储各种数据类型的集合,用中括号[ ]表示列表的开始和结束,元素之间用逗号,·分隔。列表中每个元素提供一个对应的下标

列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或 所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。 鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters、 digits或names)是 个不错的主意。

  • 创建列表

比如,列出班里所有同学的名字,就可以用一个list表示:
在这里插入图片描述


  • 访问列表元素

列表可以通过index()方法、in成员运算、下标、切片查找相应的元素信息

1.用index()方法查找元素
访问列表中的子表可以用“[:]”运算符,“[:]”运算符语法如下:
list[start:end]

list是列表的变量名称,start是起始索引,end是终止索引,该运算符访问包括start在内到end(不包括end)的范围内的列表元素,返回值仍是一个列表。

>>> list1=['Tom',1,2.3,1]
>>> list1.index('Tom')
0
>>> list1.index(1)
1				#1在列表list1里的下标是1,这里支找第一个
>>> list1.index(1,2)
3

2.in成员运算判断
若只想知道指定元素是否在列表里,则可以用in成员运算符做简单判断
好处是不会产生报错信息

>>> list1
['Tom', 1, 2.3, 1]
>>> 'a' in list1
False

3.用下标读取对应的元素

>>> list1[2]
2.3

4.切片读取

>>> list1[1:]
[1, 2.3, 1]
  • 增加列表元素

列表提供append()方法、insert()方法和extend()增加列表元素


#append() 方法用于在列表的末尾追加元素,该方法的语法格式如下
listname.append(obj)

#如果希望不将被追加的列表或元组当成一个整体,而是只追加列表中的元素,
#则可使用列表提供的 extend() 方法。extend()方法的语法格式如下:
listname.extend(obj)

#如果希望在列表中间增加元素,则可使用列表的 insert() 方法,
#此方法的语法格式为:
#index 参数指的是将元素插入到列表中指定位置处的索引值
listname.insert(index , obj)

>>> fruits=['apple','peach',1,2 ,66.6]
>>> fruits.append('pear')
>>> fruits
['apple', 'peach', 1, 2, 66.6, 'pear']
>>> fruits.insert(0,'starfruit')
>>> fruits
['starfruit', 'apple', 'peach', 1, 2, 66.6, 'pear']
>>> fruits.extend(['777',888,99.9])
>>> fruits
['starfruit', 'apple', 'peach', 1, 2, 66.6, 'pear', '777', 888, 99.9]

使用 insert() 方法向列表中插入元素,和 append() 方法一样,无论插入的对象是列表还是元组,都只会将其整体视为一个元素。

  • 删除列表元素

列表提供了clear()方法、pop()方法和remove()方法并支持del函数,实现对列表元素的删除操作

1.clear()方法
列表的clear()方法清楚列表对象里的所有元素,列表对象变成空列表

>>> list1
['Tom', 1, 2.3, 1]
>>> list1.clear()
>>> list1
[]

2.pop()方法
pop()方法使用格式:List.pop([index]).indax为可选参数,当指定时,在指定参数下标处弹出对应元素并删除元素;当不指定改参数时,pop()方法默认从列表尾部弹出并删除一个元素

>>> listpop=['球1','球2','球3']
>>> get_one=listpop.pop()
>>> print(get_one,'',listpop)3  ['球1', '球2']

>>> getone=listpop.pop(0)
>>> print(getone,'',listpop)1  ['球2']

3.remove()方法
remove()方法使用格式:List.remove(value)。其中value为要删除的元素。当需要删除的列表元素具有多个时,一次只能删除左边第一个。

>>> listpop=['球1','球2','球3','球2']
>>> listpop.remove('球2')
>>> listpop
['球1', '球3', '球2']

4.del函数
python语言中的del函数具有强大的对象删除功能,它也可以用来删除列表里指定的元素。甚至把整个列表对象予以删除

>>> listpop=['球1','球2','球3','球2']
>>> del(listpop[2])
>>> listpop
['球1', '球2', '球2']
>>> del listpop
>>> listpop
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    listpop
NameError: name 'listpop' is not defined

  • 修改列表元素

列表可以通过指定下标,对应的元素进行赋值修改。

>>> list=['球1','球2','球3','球2']
>>> list[0]='你好'
>>> list
['你好', '球2', '球3', '球2']

  • 常用方法

  1. count() 方法,此方法用于统计列表中某个元素出现的次数
    listname.count(obj)
  2. index() 方法用于定位某个元素在列表中出现的位置(也就是索引),如果该元素没有出现,则会引发 ValueError 错误。
    listname.index(obj,start,end)
  3. reverse() 方法会将列表中所有元素反向存放
    listname.reverse()
  4. sort() 方法用于对列表元素进行排序,排序后原列表中的元素顺序会方发生改变。
    listname.sort(key=None, reserse=False)

可以看到,和其他方法不同,此方法中多了 2 个参数,它们的作用分别是:
1.key 参数用于指定从每个元素中提取一个用于比较的键。例如,使用此方法时设置 key=str.lower 表示在排序时不区分字母大小写。
2.reverse 参数用于设置是否需要反转排序,默认 False 表示从小到大排序;如果将该参数设为 True,将会改为从大到小排序。

5.copy()方法,通过copy()方法实现Ll列表对象在内存中的复制,形成新的列表对象

>>> fruit=['banana','pear','apple','peach']
>>> fruit_1=fruit.copy()
>>> fruit_1.sort()
>>> fruit_1
['apple', 'banana', 'peach', 'pear']
>>> fruit_h=fruit.copy()
>>> fruit_h.sort(reverse=True)
>>> fruit_h
['pear', 'peach', 'banana', 'apple']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值