day-05 列表:list

0.列表的定义

1.一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开
代码格式:
students = ['小明','小红','小白']
列表名 赋值号 中括号 逗号

1. 索引与切片

1.1索引

1.偏移量
偏移量是从0开始的,而非我们习惯的从1开始;
列表名后加带偏移量的中括号,就能取到相应位置的元素。
2.字符串的索引
通过偏移量来对列表进行索引(可理解为搜索定位),读取所需要的元素.

例如:
#正向索引下标  0      1      2
students = ['小明','小红','小白']
#逆向索引下标  -3     -2    -1
print(students[2])    # 小白
print(students[-1])   # 小白

1.2 切片

用冒号来截取列表元素的操作叫作切片,顾名思义,就是将列表的某个片段拿出来处理。这种切片的方式可以从列表中取出多个元素。

语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到字符串的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
(5)[:]或[::] 截取所有字符串

例如:
 #正向   0  1  2  3  4  5
list2 = [4 ,5 ,6 ,7 ,8 ,9]
#逆向    -6 -5 -4 -3 -2 -1
1.print(list2[:])      #  [4, 5, 6, 7, 8, 9]
2.print(list2[2:])     #  [6, 7, 8, 9]
3.print(list2[:2])     #  [4 ,5]
4.print(list2[1:3])    #  [5, 6]
5.print(list2[2:4])    #  [6, 7]
6.print(list2[2:5:2])  #  [6, 8]
7.print(list2[-2:])    #  [8, 9]
8.print(list2[:-2])    #  [4, 5, 6, 7]

结论:左右空,取到头;左要取,右不取.

1.3 偏移量与切片区别

偏移量提取到的数据:元素
切片截取到的数据:列表

例如:
students = ['小明','小红','小黑']
print(students[2])    # 小黑
print(students[2:])   # ['小黑']

2. 列表元素增加:三种方法

.append()函数

.append()函数给列表增加元素,并不是生成一个新列表,而是让列表末尾只能新增一个元素。而且,列表长度可变,理论容量无限,所以支持任意的嵌套。

例如:
students = ['小明','小红','小刚']
students.append('小美')
print(students)
# ['小明','小红','小刚','小美']

.insert()函数(不推荐)

.insert()函数用来向列表中插入数据。.insert() 方法有两个参数,参数1:是要插入位置的索引值,参数2:是要插入的内容.

lst = ['Python学习手册', '核心编程']
lst.insert(1, '流畅的Python')
print(lst)
# ['Python学习手册', '流畅的Python', '核心编程']
注意:(实际操作中,不推荐使用 .insert() 方法。因为一旦使用这个方法,需要把插入位置后的每一个元素都后移一位,且发生索引值的变化,有可能给项目带来不可预测的影响。)

.extend()函数:

.extend() 方法也是在列表的最后插入内容。.extend() 方法的参数必须是可迭代对象。
执行 .extend() 方法时,会将参数内容 迭代追加 到列表结尾.

1.插入字符串
lst = ['Python学习手册', '核心编程']
lst.extend('流畅的Python')
print(lst)
# ['Python学习手册', '核心编程', '流', '畅', '的', 'P', 'y', 't', 'h', 'o', 'n']

2.插入列表
lst = ['Python学习手册', '核心编程']
lst.extend(['流畅的Python'])
print(lst)
# ['Python学习手册', '核心编程', '流畅的Python']

3.合并列表
list1 =  [91, 95, 97, 99]  
list2 =  [92, 93, 96, 98]
list3 =list1
list3.extend(list2)
print(list3)

3. 列表元素删除:四种方法

.remove()函数

.remove() 方法可以删除指定元素名的列表元素,它的参数是要删除元素的元素名.

students = ['小明','小红','小刚','小美','小米']
students.remove('小米')
print(students)
# ['小明', '小红', '小刚', '小美']

.pop()函数

.pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。(又取又删)
还可以通过输入索引参数的方法,删除指定位置的列表元素.

#1. 又取又删
students = ['小明','小红','小刚','小美','小米']
print(students.pop())
print(students)
# 小米
# ['小明', '小红', '小刚', '小美']
或者
students = ['小明','小红','小刚','小美','小米']
print(students.pop(),students)
#小米 ['小明', '小红', '小刚', '小美']

2. # .pop() 通过索引参数删除
students = ['小明','小红','小刚','小美','小米']
print(students.pop(1),students)
# 小红 ['小明','小刚','小美','小米']

.clear()函数

.clear() 方法用来将列表清空,最终会得到一个空列表.

students = ['小明','小红','小刚','小美','小米']
students.clear()
print(students)  #[]

del语句

del语句非常方便,既能删除一个元素,也能一次删除多个元素,也可以从列表中删除片段或者清除整个列表
语法是:del 列表名[元素的索引]

例如:
1. del 删除指定索引的列表元素
students = ['小明','小红','小刚','小美','小米']
del students[0]
print(students)   # ['小红','小刚','小美','小米']

2. del 可以通过切片来批量删除多个列表元素:
students = ['小明','小红','小刚','小美','小米']
del students[2:4]
print(students)   # ['小明','小红','小米']

students = ['小明','小红','小刚','小美','小米']
del students[3:]
print(students)   # ['小明','小红','小刚']

3.del 可以通过切片来清空列表
students = ['小明','小红','小刚','小美','小米']
del students[:]
print(students)   # []

4. 列表元素修改

4.1 索引赋值修改

列表元素可以通过索引值赋值直接修改

students = ['小明','小红','小刚','小美','小米']
students[2]='飞科'
print(students)     # ['小明', '小红', '飞科', '小美', '小米']

4.2 切片连续修改

切片获取的内容空间是连续的时候,修改时内容可以多可以少.

# 1.1 切片空间连续,可多
students = ['小明','小红','小刚','小美','小米']
students[1:4]=10,20,30,40
print(students)               #  ['小明', 10, 20, 30, 40, '小米']

#1.2 切片空间连续,可少
students = ['小明','小红','小刚','小美','小米']
students[1:4]=10,20
print(students)             #  ['小明', 10, 20, '小米']

4.3 切片对应修改

切片获取的内容空间是不连续的时候,修改时内容必须一一对应.

students = ['小明','小红','小刚','小美','小米']
students[1:4:2]=10,20
print(students)     # ['小明', 10, '小刚', 20, '小米']

5. 列表元素查看

5.1 索引查询

students = ['小明','小红','小刚','小美','小米']
print(students[3])  # 小美

5.2 for 循环遍历

students = ['小明','小红','小刚','小美','小米']
for i in students:
    print(i)
# 小明  
# 小红
# 小刚
# 小美
# 小米

5.3 切片查看

切片不会改变数据类型。字符串切片后得到的还是字符串,列表切片后得到的还是列表

1.列表
lst = ["大圣", "飞科", "新日", "台铃", "靓仔", "石头"]
print(lst[1:4])
# ['飞科', '新日', '台铃']

2.字符串
a = 'abcdef'
print(a[1:3]) # bc

5.4 .sort() 函数:排序查看

sort() 功能:列表排序(默认小到大排序)

lst = [90,-100,2,12]
lst.sort()
print(lst)

# 从大到下排序 reverse=True 倒序
lst.sort(reverse=True)

5.5 .index() 函数

1.index 功能:获取某个值在列表中的索引
注意:存在直接返回索引号,不存在直接报错

lst = ["小明","小米","小红"]
res = lst.index("小红")
print(res) # 2

6. 列表总结

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

推荐阅读更多精彩内容

  • 1、代码格式 students是列表名,数据存储在中括号[]里,用逗号隔开并使用等号赋值给列表。中括号里面的每一个...
    武怡璇_1998阅读 1,019评论 0 1
  • 嗨,很高兴能在第四关遇见你,继续和你一起驰骋在广阔的编程世界里。 当你选择来到第四关,有两件事是不言而喻...
    Johnfeng漫步阅读 1,779评论 3 6
  • 计算机名字里就有【计算】两字,如果计算机离开了数据,就如巧妇难为无米之炊。所以说,数据对于计算机很重要。 总的来说...
    foreversunda阅读 1,276评论 0 0
  • python:第4关(列表和字典) 嗨,很高兴能在第四关遇见你,继续和你一起驰骋在广阔的编程世界里。 当你选择来到...
    人间烟火__阅读 1,875评论 1 4
  • Python基础语法5 列表 什么是列表 在编程世界里,最忌讳的就是“重复性劳动“ 例:班级点名(赋值号右边不再像...
    silin123阅读 655评论 0 0