列表类型

python中列表(list)用来表示有序可变元素的集合,元素可以是任意数据类型。列表是一种复合数据类型,它是容器结构,可以包含其他类型的数据,在开发过程中会大量应用。

列表的定义

列表由一对中括号进行定义,元素与元素之间使用逗号隔开。

空列表的定义

>>> a = []
>>> print(a, type(a))
[] <class 'list'>

字符串列表

>>> b = ['hello','world!']
>>> print(b, type(b))
['hello', 'world!'] <class 'list'>

数字列表

>>> s = [80,79,85.5,98]
>>> print(s, type(s))
[80,79,85.5,98] <class 'list'>

当然也可以是混合的数据

>>> c = ['a', 2, 2.5]
>>> print(c, type(c))
['a', 2, 2.5] <class 'list'>

再次强调,列表的元素可以是任何数据类型,列表作为列表的元素叫做列表的嵌套,通过列表嵌套可以表示多维数据。

>>> score = [
    ['语文','数学','英语'],
    [80,79,89],
    [90,89,67],
    [87,56,78]
]

列表的拼接

像字符串一样,列表之间也可以进行加法运算实现列表的拼接,也可以和整数进行乘法运算实现重复拼接。

>>> [1,2,3] + [4,5,6]
[1,2,3,4,5,6]
>>> [1,2,3] * 3
[1,2,3,1,2,3,1,2,3]

列表的索引和切片

序列的索引,切片操作完全一致,参见字符串。

>>> l = [1,2,3,4]
>>> l[-1]
4
>>> l[:2]
[1,2]

注意嵌套列表的元素获取

>>> score = [
    ['语文','数学','英语'],
    [80,79,89],
    [90,89,67],
    [87,56,78]
]
>>> score[1][2]
89

列表的常用操作

python中列表操作非常灵活,是非常重要和经常使用的数据类型。

增加元素

给列表增加元素需要使用列表的方法

  • .append(el)

在列表的末尾添加一个元素

>>> ls = [1,2,3]
>>> ls.append(4)
>>> print(ls)
[1,2,3,4]
  • .insert(index,el)

在列表指定索引处插入一个元素

>>> ls = [1,2,3]
>>> ls.insert(0,0)
>>> print(ls)
[0,1,2,3]
>>> ls.insert(2,'a')
>>> print(ls)
[0,1,'a',3]
  • .extend(iterable)

扩展列表,元素为传入可迭代对象中的元素

>>> ls = [1,2,3]
>>> ls.extend([4,5,6])
>>> print(ls)
[1,2,3,4,5,6]

删除元素

  • .pop(index=-1)

删除指定索引的元素,并返回该元素,没有指定索引默认删除最后一个元素

>>> ls = [1,2,3,4]
>>> ls.pop()
4
>>> print(ls)
[1,2,3]
>>> ls.pop(0)
1
>>> print(ls)
[2,3]
  • .remove(value)

从列表中删除第一个指定的值value,如果不存在value则报错

>>> ls = [1,2,3,1]
>>> ls.remove(1)
>>> print(ls)
[2,3,1]
  • .clear()

清空列表,原列表变成空列表

>>> ls = [1,2,3]
>>> ls.clear()
>>> print(ls)
[]

修改元素

列表中的元素可以进行修改,只需要使用索引赋值即可。

>>> ls = [1,2,3]
>>> ls[1] = 'a'
>>> print(ls)
[1, 'a', 3]

列表的其他方法

  • .copy()

返回一个列表的浅拷贝。在讲可变与不可变类型的时候再详细讨论。

  • .count(value)

统计列表中value出现的次数

>>> ls = [1,2,3,1]
>>> ls.count(1)
2
  • index(self, value, start=0, stop=9223372036854775807)

返回列表中指定值value的第一个索引,不存在则报错

>>> ls = [1,2,3,1]
>>> ls.index(1)
0
>>> ls.index(1,1)
3
  • .reverse()

翻转列表元素顺序

>>> ls = [1,2,3]
>>> ls.reverse()
>>> print(ls)
[3,2,1]
  • .sort(key=None, reverse=False)

对列表进行排序,默认按照从小到大排序,当参数reverse=True时,从大到小进行排序。注意列表中的元素类型需要相同,否则抛出异常。

>>> ls = [2,1,3]
>>> ls.sort()
>>> print(ls)
[1,2,3]
>>> ls.sort(reverse=True)  # 从大到小
>>> print(ls)
[3,2,1]
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容