Python的列表list
admin
2023-07-18 14:42:18
0

list


  • Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

列表使用[]来表示

比如,列出列出班里所有同学的名字,就可以用一个list表示:

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']

变量classmates就是一个list,用len()函数可以获得list元素的个数:

>>>len(classmates)
3

列表有序的,可以用索引根据下标获取列表每个位置的元素,索引从0开始:

>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'
>>> classmates[3]
Traceback (most recent call last):
  File "", line 1, in 
IndexError: list index out of range

当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1
如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:

>>> classmates[-1]
'Tracy'

以此类推,可以获取倒数第2个、倒数第3个:

>>> classmates[-2]
'Bob'
>>> classmates[-3]
'Michael'
>>> classmates[-4]
Traceback (most recent call last):
  File "", line 1, in 
IndexError: list index out of range

当然,倒数第4个就越界了。

list是一个可变的有序表,所以,可以往list中追加元素到末尾:

>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

也可以把元素插入到指定的位置,比如索引号为1的位置:

>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

要删除list末尾的元素,用pop()方法:

>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']

要删除指定位置的元素,用pop(i)方法,其中i是索引位置:

>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']

也可以使用remove(y)方法,其中y是指定的元素名称

>>> classmates.remove(Bob)
>>> classmates
['Michael', 'Tracy']

要清空列表,可以使用clear()方法

>>> classmates.clear()
>>> classmates
None

要清空某个变量的内存,解除变量对内存的占用可以使用del方法

>>> del classmates[0]
>>> classmates
['Bob', 'Tracy']

要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:

>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tracy']

获取列表中单类元素的个数,使用count()方法

>>>classmate.count('Bob')
1

sort()排序 可以为我们的列表做一个简单的升序(从小到大)

>>>words=['a','z','e','b']
>>>words.sort()
>>>print(words)
['a','b','e','z']

reverse() 将列表逆序排列

>>>words=['a','z','e','b']
>>>words.reverse()
>>>print(words)
['b','e','z','a']

list里面的元素的数据类型也可以不同,比如:

>>> L = ['Apple', 123, True]

list元素也可以是另一个list,比如:

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4

要注意s只有4个元素,其中s[2]又是一个list,如果拆开写就更容易理解了:

>>> p = ['asp', 'php']
>>> s = ['python', 'java', p, 'scheme']

要拿到'php'可以写p[1]或者s[2][1],因此s可以看成是一个二维数组,类似的还有三维、四维……数组,不过很少用到。

如果一个list中一个元素也没有,就是一个空的list,它的长度为0:

>>> L = []
>>> len(L)
0

想要从列表中获取多个项,怎么办?可以使用list的切片操作。简单来说:切片操作的作用是获取列表中一个区间范围的元素,例如想获取的是下标从0~2的元素则是[0:2+1]

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> print(classmates[0:3])
['Michael', 'Bob', 'Tracy']

列表切片的操作还支持设置步长,默认步长是1。如果步长为2,则跳过一个元素获取一个元素。同理,步长为3,跳过两个元素获取一个元素

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> print(classmates[0:3:2])
['Michael', 'Tracy']

如果列表过长,[0:]可以将整个列表的值全部获取

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> print(classmates[0:])
['Michael', 'Bob', 'Tracy']

当冒号右侧的数值为负数时,如-1则不获取列表的最后一个元素,-2就是两个

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> print(classmates[0:-2])
['Michael']

那么怎么从右往左获取元素呢?这时可以将步长设置为负数如[2::-1]

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> print(classmates[2::-1])
['Tracy','Bob','Michael']

元组


什么是元组
元组被称为只读列表(即数据可以查询,但不能被修改),使用()来定义,所以列表的切片操作同样也适合元组

>>>a=(1,2,3,4)
>>>print(a)
(1, 2, 3, 4)

创建元组时,如果元组中只有一个元素的情况下,创建元组的方式:(1,)【注意加,】
元组的切片

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

相关内容

热门资讯

英格兰队训练物资被盗疑为内鬼作... 正在备战世界杯的英格兰队遭遇失窃事件,引发关注。消息人士证实,此前运送装备至堪萨斯城斯沃普足球村基地...
普京给不友好国家提建议:永远不... 【环球网报道 记者 张江平】综合俄新社等媒体报道,俄罗斯总统普京12日给对俄罗斯不友好的国家提出了一...
2名中国球迷在墨西哥遭持枪抢劫... “今天上午,墨方通告我馆,两名涉案嫌疑人中的一人已经落网。”13日,中国驻墨西哥大使馆向新华社记者公...
瑞典称出动鹰狮战机,在波罗的海... 【环球网报道 记者 张江平】综合法新社、乌克兰《基辅邮报》等媒体报道,瑞典军方13日发表声明称,12...
国务院安委办通报典型案例,商洛... 近日,国务院安委会办公室通报了五起安全生产领域弄虚作假的典型案例,其中包括陕西商洛高速公路桥梁垮塌事...
美媒爆料他才是伊朗谈判主导者:... 《华尔街日报》6月14日报道,影响伊朗与美国达成协议的关键人物是伊朗革命卫队新任总司令艾哈迈德·瓦希...
产业优势互补,沪新携手探索AI... 来源:滚动播报 (来源:上观新闻) 近日,沪新智能化赋能制造业交流会在上海举行。两地业界围绕人工智...
已成中国第二大手机系统!华为:... 快科技6月13日消息, 目前鸿蒙系统已经稳稳占据国内手机操作系统市场第二的位置,这个份额直接超过了苹...
保时捷女司机醉驾撞两车逃逸,让... 近日,北京朝阳交警侦破了一起交通事故,全程充满戏剧性。2026年5月25日凌晨3点半,朝阳区红军营东...
张小龙猛拉了马化腾一把 (本文作者为 蓝媒汇,钛媒体经授权发布) 文 | 蓝媒汇,作者 | 叶二,编辑 | 魏晓 还得...