八、列表

1、列表

数组:元素数据类型必须一致
列表:不要求数据类型一致,可以是整型、浮点型,也可以是字符串等

1.1、创建列表

(1)、普通列表

>>>number = [1,2,3,4,5]

(2)、混合列表

>>> mix = [1,'python',[1,2,3]]

(3)、空列表

>>> empty = []

1.2、向列表添加元素

(1)、向末尾添加元素

单个元素 list.append()
多个元素 list.extend([])
>>> list = [1,2,3]
>>> list.append(4)
>>> list
[1, 2, 3, 4]
>>> list.extend([5,6])   #extend()方法是使用一个列表拓展另一个列表,所以其参数是列表
>>> list
[1, 2, 3, 4, 5, 6]

(2)、任意位置添加元素

list.insert(a, b)    #参数a:要插入的列表的位置,参数b:要插入的元素

>>> list = [1,2,3,4]
>>> list.insert(1, 'python')    #1为索引号
>>> list
[1, 'python', 2, 3, 4]

1.3、从列表中获取元素

(1)、获取单个元素
通过索引值获取单个元素,索引号从0开始

>>> color = ['blue', 'white', 'red']
>>> color[1]
'white'

>>> color[0], color[2] = color[2], color[0]
>>> color
['red', 'white', 'blue']    #元素对换位置

(2)、列表分片(获取多个元素)

list[a:b]    #参数a、b为索引值,a为开始位置,b是结束位置,不包括结束位置
>>> color = ['blue', 'white', 'red']
>>> color[0:2]   
['blue', 'white']

>>> color[:2]      #获取索引值2以前的元素,不包括2的元素
['blue', 'white']

>>> color[1:]       #获取索引值为1以后的元素,包括1的元素
['white', 'red']

>>> color[:]          #对原列表进行拷贝
['blue', 'white', 'red']

>>> list = [1,2,3,4,5,6,7,8,9]
>>> list[0:9:2]    # 列表分片第三个参数表示步进,默认为1
[1, 3, 5, 7, 9]

>>> list[::2]
[1, 3, 5, 7, 9]

>>> list[::-1]        # 第三个参数为复数则表示原列表原地翻转
[9, 8, 7, 6, 5, 4, 3, 2, 1]

>>> list[::-2]
[9, 7, 5, 3, 1]

1.4、从列表删除元素

(1)、remove()方法
不需要知道元素所在列表的位置,参数为将要删除的元素

>>> num = [1,2,3]
>>> num.remove(2)
>>> num
[1, 3]

(2)、del[]语句
参数:所删除元素的索引值

>>> num1 = [1,2,3]
>>> del num1[1]
>>> num1
[1, 3]

>>> del num1                #删除整个列表

(3)pop()方法
默认弹出列表最后一个元素,其参数也可以接收索引值,进行弹出对应元素

>>> list = [1,2,3,4,5,6]
>>> list.pop()         # 默认弹出最后一个,并返回
6
>>> list
[1, 2, 3, 4, 5]
>>> list.pop(3)     # 指定索引值
4

1.5、列表的常用操作符

>>> list1 = [123]
>>> list2 = [456]
>>> list3 = ['abc']
>>> list4 = ['bcd']
>>> list5 = [123,456]
>>> list6 = [234,123]
>>> list7 = list1 + list2     #连接操作符
>>> list7
[123, 456]
>>> list8 = list3 + list4
>>> list8
['abc', 'bcd']
>>> list1 < list2             #比较操作符
True
>>> list3 > list4
False
>>> list5 > list6         #包含多个元素的列表比较时,默认从第一个元素开始比较,若真则整个列表赢了,字符串比较是第一个字符的ASCII码值对比
False
>>> (list1 < list2) and (list1 == list3)     #逻辑操作符
False
>>> list1 = [123]    
>>> list1*2                     #重复操作符
[123, 123]
>>> list = [1,2,3,[4,5]]
>>> 1 in list              #成员操作符in、not in
True
>>> 6 not in list
True
>>> 4 in list         #列表中的列表元素不能直接访问
False
>>> 4 in list[3]     #列表中的列表元素访问可以添加索引号
True

>>> list = [1,2,3,[4,5]]   
>>> list[3][0]   #获取列表的列表元素,第一个参数为第一个列表索引值,第二个参数为第二个列表索引值
4

1.6、列表的其他方法

查看所有列表:dir(list)
(1)、count()方法
计算其参数在列表中出现的次数

>>> list1 = [1,1,2,3,4,5,8]
>>> list1.count(1)
2

(2)、index()方法
返回其参数在列表中的位置

>>> list1.index(1)   #列表中两个相同元素,返回的为第一个的位置
0
>>> list1.index(3)
3

>>> list1.index(1, start,stop)  #设定索引范围,可以查找第二个目标位置
1

(3)、reverse()方法
将整个列表原地翻转

>>> list1.reverse()
>>> list1
[8, 5, 4, 3, 2, 1, 1]

(4)、sort()方法
用指定的方式对列表元素排序,默认为从小到大排序
从大到小排序时,可以使用sort排序后再使用reverse()方法翻转
另外可以使用sort()方法的第三个参数sort(func, key, reverse)
默认sort(reverse = False),表示不颠倒顺序。

>>> list2 = [2,1,4,6,3,9,8]
>>> list2.sort()
>>> list2
[1, 2, 3, 4, 6, 8, 9]

>>> list2.sort(reverse = True)   #True时表示颠倒顺序
>>> list2
[9, 8, 6, 4, 3, 2, 1]

(5)、copy()方法
与切片一样,不与原列表变化
(6)、clear()方法
清空整个列表,变成空列表

1.7、关于列表分片的补充

列表分片与拷贝不与原列表变化而变化,新赋值的列表相反

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

推荐阅读更多精彩内容

  • 数据结构,是指通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可...
    千释炎阅读 755评论 0 0
  • Python中的列表和字符串都是序列类型,对字符串的一些操作在列表中同样适合。 1.创建一个列表的方式: 上面的表...
    TryEnough阅读 1,025评论 2 6
  • 刘筱你好,我每晚都在听你讲的故事,这位朋友的故事,和我几乎一样,不过她在没有爱情的婚姻里过了七年,可我过了,22年...
    cee11e337790阅读 113评论 0 1
  • 你拍一我拍一,西天取经蹄朝西;你拍二我拍二,猪八戒做梦媳妇儿;你拍三我拍三,五岳独尊是泰山;你拍四我拍四,来把红豆...
    羊耳朵的小羊圈阅读 778评论 0 0
  • 被泼过太冷的雨滴和雪花,更坚持微笑要暖的像太阳。 ~~~~~~~~~~~~~~~~致闺蜜 这些年,宿舍的姐妹渐渐成...
    诗小蛮5786400阅读 496评论 0 4