2022年 11月 8日

python中列表和字典的常用知识点

本文主要介绍python列表和字典的常用知识点:增、删、改、查。

一、列表

1.1 提取元素

两种取法:一个是取单个值,一个是取切片。

不同点:

取值直接使用:【列表名[索引值]】,取到的值的数据类型是元素的数据类型;

切片的格式:【列表名[左索引值 : 右索引值]】(中间用冒号进行隔开),取得的切片的数据类型还是列表。

  1. list2 = [5,6,7,8,9]
  2. # 取值,没有冒号
  3. print(list2[2]) # 结果为:7
  4. print(type(list2[2])) # 结果为:<class 'int'>
  5. # 取切片,带冒号
  6. # 左边空,取到头,从第0位开始,取n个元素。
  7. print(list2[0:2]) # 打印出[5,6],共取2个元素
  8. print(list2[:2]) # 打印出[5,6]
  9. print(type(list2[:2]))# 结果为:<class 'list'>
  10. # 右边空,表示从第m个元素开始取到尽头,即最后一位;
  11. print(list2[2:]) # 打印出[7,8.9]
  12. # 冒号两边空,表示从第0位到最后一位,取整一个列表,相当于复制。
  13. print(list2[:]) # 打印出[5,6,7,8,9]
  14. print(list2[0:5]) # 打印出[5,6,7,8,9]
  15. # 冒号左右都有数字时,表示从第m个元素开始取,取到第(n-1)个。共取出(n-m)个元素。
  16. print(list2[1:3]) # 打印出[6,7]
  17. print(list2[2:4]) # 打印出[7,8]

切片小结:取法口诀:左取右不取,空则取到头。(假设n>m>0)

(1)[ :n],冒号左边空(或者为0),,表示从头,即第0位开始,取到第(n-1)个元素,共取n个元素;

(2)[m:],右边空,,表示从第m个元素开始取到尽头,即最后一位;

(3)[ : ],冒号两边空,,表示从第0位到最后一位,取整一个列表,相当于复制。

(4)[m : n],冒号左右都有数字时,,表示从第m个元素开始取,取到第(n-1)个。共取出(n-m)个元素。

1.2 增加元素

语法:【列表名.append()】。注意这里是 . 

append后的括号里只能接受一个参数,结果是让列表末尾新增一个元素。

  1. list3 = [1,2]
  2. list3.append(3)
  3. print(list3) #结果为:[1,2,3]
  4. list3.append([4,5])
  5. print(list3) #结果为:[1,2,3,[4,5]]
  6. #添加‘[4,5]’这个列表,也就是append()的参数为一个列表,也是一个参数

但是append(4,5)会报错,因为给了两个元素。

注意!!如果使用 a=list3.append(3),这样a是赋值None,这是因为append()函数没有返回值,默认为None。

若要增加多个元素,可使用extend()函数,用法同append(),可传入多个值,如:

  1. list3 = [12]
  2. list3.extend([4,5])
  3. #结果为:
  4. #[1,2,4,5]

1.3 删除元素

语法:【del 列表名[元素的索引值]】 。注意这里是空格不是

与append()函数类似,能删除单个元素、多个元素(切片)、整个列表。

比如:

  1. # 删除 小红
  2. students = ['小明','小红','小刚','小强']
  3. del students[1]
  4. print(students)
  5. # ['小明', '小刚', '小强']

1.4 修改元素

语法:【列表名[旧值的索引值]=新值

使用偏移量修改对应位置的元素。

  1. list1 = ['小明','小红','小刚','小强']
  2. list1[1] = '小黑'
  3. print(list1)
  4. #结果显示
  5. #['小明','小黑','小刚','小强']

1.5 列表除了正向取值,还有负向取值。

students = ['a','b','c','d']

该列表对应的正负向索引值为:

‘a’

‘b’

‘c’

‘d’

正向索引

0

1

2

3

负向索引

-4

-3

-2

-1

注意:正向索引是从左到右,从0开始计算;负向索引是从右到左,从-1开始。

负向的取值和切片的取法同正向。

二、字典

2.1 提取元素

字典没有偏移量,所以在提取元素时,中括号中应该写键的名称,即字典名[字典的键]。提取出来的是key对应的value,而不会显示键的数据!

  1. scores = {'小明': 95, '小红': 90, '小强': 90}
  2. print(scores['小明'])
  3. #结果显示
  4. #95

2.2 新增元素

语法:字典名[键] = 值

每次只能新增一个键值对。scores[‘小刚’,’小美’]=92,85,这样是不对的,最终会输出(‘小刚’,’小美’:(92,85))作为一个键值对。

  1. album = {'周杰伦':'七里香'}
  2. album['王力宏'] ='心中的日月'
  3. album['林俊杰'] = '小酒窝'
  4. print(album)
  5. print(album['周杰伦'])
  6. #结果显示
  7. #{'周杰伦':'七里香''王力宏':'心中的日月''林俊杰':'小酒窝'}
  8. #七里香

2.3 修改元素

语法:字典名[键] = 值(同新增)

如果不是整个键值对都不需要,只需要改变对应key下的value,修改就可以,不需要del。

  1. dict1 = {'小明':'男'}
  2. dict1['小明'] = '女'
  3. print(dict1)
  4. #字典没有偏移量,只能通过key找到元素位置

拓展:若要增加多个元素,可使用update()函数,用法同append(),可将新字典中所有键值对全部添加到旧字典对象上。如果 key 有重复,以update()中的为准,覆盖原有值。

  1. a = {'小明':95,'小红':90}
  2. b = {'小强':90}
  3. c = {'小红':90,'小强':92}
  4. a.update(b)
  5. print(a) # 结果为:{'小明': 95, '小红': 90, '小强': 90}
  6. b.update(c)
  7. print(b) # 结果为:{'小强': 92, '小红': 90}

2.4 删除元素

语法:del 字典名[键]

  1. album = {'周杰伦':' Mojito','王力宏':'心中的日月'}
  2. del album['王力宏']
  3. print(album)
  4. #结果显示
  5. #{'周杰伦':' Mojito'}

三、最后总结一下

这两个“容器”的格式、增删改查等用法。具体汇总如下:

列表

字典

基本格式

中括号、逗号,

如[‘小明’,17,5.2]

大括号、键值对(冒号)、逗号,

如{‘小明’:95,’小红’:90,’小刚’:90}

取值

使用偏移量,格式:【列表名[偏移量]】

正向从0开始计算。

使用键,格式:【字典名[键]】

没有偏移量

增加元素

列表名.append()

字典名[键] = 值

修改元素

列表名[旧值的索引值]=新值

字典名[键] = 新值(同新增元素)

删除元素

del 列表名[元素的索引] (空格隔开)

del 字典名[键](空格隔开)

区别

列表有偏移量,通过偏移量对元素值进行操作

字典有键值对,通过键对值进行操作

注意:所有的符号都是英文符号!

时间比较仓促,先整理这么多~~