目录

  • 1. 列表 list
    • 1.1 列表定义与使用
      • 1.1.1 列表定义
      • 1.1.2 列表使用
        • 1.1.2.1 创建
        • 1.1.2.2 索引
        • 1.1.2.3 切片
        • 1.1.2.4 运算符
        • 1.1.2.5 成员检测
    • 1.2 列表常用方法
      • 1.2.1 append()
      • 1.2.2 extend()
      • 1.2.3 insert()
      • 1.2.4 pop()
      • 1.2.5 remove()
      • 1.2.6 sort()
      • 1.2.7 reverse()
    • 1.3 列表嵌套
    • 1.4 列表推导式
  • 2. 元祖 tuple
    • 2.1 元组定义与使用
      • 2.1.1 元祖的定义
      • 2.1.2 元祖的使用
        • 2.1.2.1 创建
        • 2.1.2.2 索引
        • 2.1.2.3 切片
    • 2.2 元组常用方法
      • 2.2.1 index()
      • 2.2.2 count()
    • 2.3 元组解包
    • 2.4 元组与列表
  • 3. 集合 set
    • 3.1 集合定义与使用
      • 3.1.1 集合定义
      • 3.1.2 集合的特点
      • 3.1.3 集合使用
        • 3.1.3.1 集合创建
        • 3.1.3.2 成员检测
    • 3.2 集合常用方法
      • 3.2.1 add()
      • 3.2.2 update()
      • 3.2.3 remove()
      • 3.2.4 discard()
      • 3.2.5 pop()
      • 3.2.6 clear()
    • 3.3 集合运算
      • 3.3.1 交集运算
      • 3.3.2 并集运算
      • 3.3.3 差集运算
    • 3.4 集合推导式
  • 4. 字典 dict
    • 4.1 字典定义与使用
      • 4.1.1 字典定义
      • 4.1.2 字典的使用
        • 4.1.2.1 创建
        • 4.1.2.2 访问元素
        • 4.1.2.3 操作元素
        • 4.1.2.4 嵌套字典
    • 4.2 字典常用方法
      • 4.2.1 keys()
      • 4.2.2 values()
      • 4.2.3 items()
      • 4.2.4 get()
      • 4.2.5 update()
      • 4.2.6 pop()
    • 4.3 字典推导式

1. 列表 list

1.1 列表定义与使用

1.1.1 列表定义

  • 列表是有序可变元素的集合,使用中括号[]包围,元素之间用逗号分隔
  • 列表是动态的,可以随时扩展和收缩
  • 列表是异构的,可以同时存放不同类型的对象
  • 列表中允许出现重复元素

1.1.2 列表使用

1.1.2.1 创建

  1. 通过构造函数创建
  2. 中括号创建并填充
  3. 列表推导式
# 1、通过构造函数创建
# 创建空列表
li1 = list()
# 字符串
li1 = list('hogwarts')
print(type(li1),li1)
#类型:<class 'list'> ;内容:['h', 'o', 'g', 'w', 'a', 'r', 't', 's']li1_1 = list((1, 2, 3))  # 元组
li1_2 = list({4, 5, 6})  # 集合
li1_3 = list({4, 5, 6})  # 字典
li1_4 = list(1,2,{4, 5, 6},{4, 5, 6}) #混合内容# 2、中括号创建并填充元素
li2 = []  # 空列表li2 = [1, 2, 3]  # 直接填充对象
print(type(li2), li2)
#打印结果:<class 'list'> [1, 2, 3]#3.列表推导式
li3=[i for i in range(1,11) if i%2==0]
print(type(li3),li3)
#打印结果:<class 'list'> [2, 4, 6, 8, 10]

1.1.2.2 索引

  • 默认正向索引,编号从 0 开始。
  • 支持反向索引,编号从-1 开始。
li = [1, 2, 3, 4, 5]# 1、正向索引
print(li[0])  # 打印1
print(li[3])  # 打印4# 2、反向索引
li = [1, 2, 3, 4, 5]
print(li[-1])  # 打印 5

1.1.2.3 切片

切片: [start: stop: step]

  • start 值: 指示开始索引值,如果没有指定,则默认开始值为 0;
  • stop 值: 指示到哪个索引值结束,但不包括这个结束索引值。如果没有指定,则取列表允许的最大索引值;
  • step 值: 步长值指示每一步大小,如果没有指定,则默认步长值为 1。
  • 三个值都是可选的,非必填
# 切片基本用法
li = ['h', 'o', 'g', 'w', 'a', 'r', 't', 's']
print(li[0:5:2])  # 打印['h', 'g', 'a']
print(li[2:4])  # 省略了step,打印['g', 'w']
print(li[:4])  # 省略了start和step,打印['h', 'o', 'g', 'w']
print(li[2:])  # 省略了stop和step,打印['g', 'w', 'a', 'r', 't', 's']
print(li[::2])  # 省略start和stop,打印['h', 'g', 'a', 't']
print(li[::-1])  # 特殊的切片写法:逆序打印['s', 't', 'r', 'a', 'w', 'g', 'o', 'h']

1.1.2.4 运算符

重复:

  • 使用 * 运算符可以重复生成列表元素。
# 1、重复
li = [1] * 5
print(li)  # 打印[1, 1, 1, 1, 1]

合并:

  • 使用 + 加号运算符,可以将两个列表合二为一。
# 2、合并
li1 = [1, 2, 3]
li2 = [99, 100]
print(li1 + li2)  # 打印[1, 2, 3, 99, 100]

1.1.2.5 成员检测

  • in:检查一个对象是否在列表中,如果在则返回 True,否则返回 False。
  • not in:检查一个列表是否不包含某个元素。如果不在返回 True,否则返回 False。
li = [1, 2, 3]# in
print(1 in li)  # 返回True
print(100 in li)  # 返回False# not in
print(1 not in li)  # 返回False
print(100 not in li)  # 返回True

1.2 列表常用方法

1.2.1 append()

  • append(item):将一个对象 item 添加到列表的末尾。
  • 入参:对象 item
  • 返回:None
# 添加元素
# 添加元素
li = []
li.append(1)
li.append(3.14)
li.append("hogwarts")
li.append([6, 6, 6])
li.append((1.2, 1.5))
li.append({'msg': "Hello"})print(li)  # 打印列表: [1, 3.14, 'hogwarts', [6, 6, 6], (1.2, 1.5), {'msg': 'Hello'}]
print(len(li))  # 获取列表元素个数: 6

1.2.2 extend()

  • extend(iterable):将一个可迭代对象的所有元素,添加到列表末尾。
  • 入参:可迭代对象 iterable
  • 返回:None
  • 注意:可迭代对象是字典的话,添加的是字典的key值
# extend()的用法li = []
li.extend('hogwarts')  # 添加的是字符串的所有字母
li.extend([1, 2, 3])  # 接收列表的所有元素
li.extend((4, 5, 6))  # 接收元组的所有元素
li.extend({'a': 1, 'b': 2})  # 接收字典的所有key值print(li)
#打印结果:['h', 'o', 'g', 'w', 'a', 'r', 't', 's', 1, 2, 3, 4, 5, 6, 'a', 'b']

1.2.3 insert()

  • insert(index, item):将一个对象插入到指定的索引位置
  • 入参:索引值 index ,一个对象 item
  • 返回:None
  • 原索引位置及后面的元素后移一位
li = [0, 1, 2]
print("插入前: ", li)  # 打印 [0, 1, 2]# 在索引0的位置插入元素
li.insert(0, 'hogwarts')
print("插入后: ", li)  # 打印 ['hogwarts', 0, 1, 2]

1.2.4 pop()

  • pop(index)pop()
  • 弹出并返回所指定索引的元素。
  • 入参:索引值 index,可不传
  • 返回:指定索引的元素
  • 返回:未指定索引则返回末尾元素
  • 如果索引值不正确,或者列表已经为空,则引发 IndexError 错误
letters = ['h', 'o', 'g', 'w', 'a', 'r', 't', 's']# 传入索引3,弹出元素 w
n1 = letters.pop(3)
print(n1)  # 打印 w# 不传参数,默认弹出末尾元素
n2 = letters.pop()
print(n2)  # 打印 s

1.2.5 remove()

  • remove(item)
  • 移除列表中第一个等于 item 的元素
  • 入参:指定元素 item
  • 返回:None
  • 目标元素必须已存在,否则会报 ValueError
li = ['h', 'o', 'g', 'w', 'a', 'r', 't', 's']
print(len(li))  # 打印 8# 1、删除指定元素'h'
li.remove('h')
print(li)  # 打印 ['o', 'g', 'w', 'a', 'r', 't', 's']
print(len(li))  # 打印 7# 2、移除第一个2
li = [1, 2, 3, 2, 1]
li.remove(2)
print(li)  # 打印 [1, 3, 2, 1]# 3、删除不存在的元素,会报ValueError错误
li = [1, 2, 3]
li.remove(100)

1.2.6 sort()

  • sort(key=None, reverse=False)
  • 对列表进行原地排序,只使用 < 来进行各项间比较。
  • 入参:支持 2 个关键字参数:
    • key:指定带有一个参数的函数,用于从每个列表元素中提取比较键。
    • reverse:默认值为 **False 表示升序,**为 True 表示降序
  • 返回:None
nums = [2, 4, 3, 1, 5]# 1、不传参数,默认升序,数字从小到大排列
nums.sort()
print(nums)  # 打印 [1, 2, 3, 4, 5]# 2、指定key=len,按元素的长度排序
words = ['Python', 'Java', 'R', 'Go']
words.sort(key=len)
print(words)  # 打印 ['R', 'Go', 'Java', 'Python']# 3、指定reverse=True,降序
nums = [2, 4, 3, 1, 5]
nums.sort(reverse=True)
print(nums)  # 打印 [5, 4, 3, 2, 1]

1.2.7 reverse()

  • reverse():将列表中的元素顺序反转
  • 参数:无
  • 返回:None
  • 反转只是针对索引值,元素之间不相互比较。
# 反转顺序
nums = [8, 1, 5, 2, 77]
nums.reverse()
print(nums)  # 打印[77, 2, 5, 1, 8]

1.3 列表嵌套

  • 嵌套列表是指在列表里存放列表
  • 列表的常用方法都适用于嵌套列表
# 1、创建嵌套列表
li_2d = [['a', 'b', 'c'], [1, 2, 3]]
print(type(li_2d))  # 打印<class 'list'>
print(len(li_2d))  # 打印 2# 2、访问嵌套列表中的元素
print(li_2d[0][2])  # 打印 'c'

1.4 列表推导式

  • 列表推导式是指循环创建列表,相当于 for 循环创建列表的简化版
  • 语法:[x for x in li if x ...]
"""
实例:将 1-10 中的所有偶数平方后组成新的列表
"""# 1、传统解决方案
result = []
for ele in range(1, 11):if ele % 2 == 0:result.append(ele ** 2)
print(result)  # 打印 [4, 16, 36, 64, 100]# 2、使用列表推导式
result = [ele ** 2 for ele in range(1, 11) if ele % 2 == 0]
print(result)  # 打印 [4, 16, 36, 64, 100]

2. 元祖 tuple

2.1 元组定义与使用

2.1.1 元祖的定义

  • 元组是有序的不可变对象集合

因为元祖不可变,通常我们把元祖当做常量列表

  • 元组使用小括号包围,各个对象之间使用逗号分隔
  • 元组是异构的,可以包含多种数据类型

2.1.2 元祖的使用

2.1.2.1 创建

  1. 直接使用逗号分隔
  2. 通过小括号填充元素
  3. 通过构造方法 tuple(iterable)

使用构造方法,tuple中的元素是可迭代对象中的所有元素

# 1、直接使用逗号分隔
t1 = 1, 2, 3
print(type(t1),t1)
#<class 'tuple'> (1, 2, 3)t1_1=1,
print(type(t1_1),t1_1)  #<class 'tuple'> (1,)
t1_2=(1,)
print(type(t1_2),t1_2)  #<class 'tuple'> (1,)
t1_3=(1)
print(type(t1_3),t1_3)  #<class 'int'> 1
#注意:使用此方式创建元素,如果只有一个元素的话,单一元素后面的逗号不可省略。都这会被认为是其他类型# 2、通过小括号填充元素
t2 = (1, 2, 3)
print(type(t2),t2)
#<class 'tuple'> (1, 2, 3)t3 = ('a', 'b', 'c')
print(type(t3),t3)
#<class 'tuple'> ('a', 'b', 'c')# 3、通过构造函数tuple()
t4 = tuple()
print(type(t4),t4)
#<class 'tuple'> ()t5 = tuple([1, 2, 3])
print(type(t5),t5)
#<class 'tuple'> (1, 2, 3)
#t5中的元素,是可迭代对象[1,2,3]中元素

2.1.2.2 索引

  • 可以通过索引值来访问对应的元素。

    • 正向索引,默认编号从 0 开始
    • 反向索引,默认编号从-1 开始
t = tuple(range(1, 6))# 正向索引
print(t[2])# 反向索引
print(t[-1])

2.1.2.3 切片

[start: stop: step]:

  • 三个值都是可选的,非必填
  • start 值: 指示开始索引值,如果没有指定,则默认开始值为 0;
  • stop 值:指示到哪个索引值结束,但不包括这个结束索引值。如果没有指定,则取元组允许的最大索引值;
  • step 值:步长值指示每一步大小,如果没有指定,则默认步长值为 1。
# 切片的使用
t = (1,2,3,4,5,6)print(t[:]) #(1, 2, 3, 4, 5, 6)
print(t[:-2]) #(1, 2, 3, 4)
print(t[2:4]) #(3, 4)
print(t[2:5:2]) #(3, 5)
# 特殊的切片写法:逆序
print(t[::-1]) #(6, 5, 4, 3, 2, 1)

2.2 元组常用方法

2.2.1 index()

  • index(item)
  • 返回与目标元素相匹配的首个元素的索引
  • 目标必须在元组中存在的,否则会报错
t = (1, 3, 2, 3, 2)
print(t.index(3)) #1t = ('h', 'o', 'g', 'w', 'a', 'r', 't', 's', 'a')
print(t.index('a')) #4

2.2.2 count()

  • count(item):返回某个元素出现的次数。
  • 入参:对象 item
  • 返回:次数
t = (1, 2, 2, 3, 3, 3, 3)
print(t.count(3)) #4t = ('h', 'o', 'o', 'o', 'g', 'w', 'a', 'r', 't', 's')
print(t.count('a')) #1

2.3 元组解包

元组解包:把一个可迭代对象里的元素,一并赋值到由对应的变量组成的元组中。

注意:元祖解包要求变量个数和元素个数一致

# 传统逐个赋值的方式
t = (1, 2, 3)
a = t[0]
b = t[1]
c = t[2]
print(a, b, c)  #1  2 3# 使用元组解包平行赋值
a, b, c = (1, 2, 3)
print(a, b, c)  # 1 2 3

2.4 元组与列表

  1. 相同点

    • 都是有序的
    • 都是异构的,能够包含不同类型的对象
    • 都支持索引和切片
  2. 区别

    • 声明方式不同,元组使用(),列表使用 []
    • 列表是可变的,元组是不可变的

3. 集合 set

3.1 集合定义与使用

3.1.1 集合定义

  • 无序的唯一对象集合
  • 用大括号{}包围,对象相互之间使用逗号分隔
  • 集合是动态的,可以随时添加或删除元素
  • 集合是异构的,可以包含不同类型的数据

3.1.2 集合的特点

  1. 唯一性:关键特性,集合中任何对象都不会重复
  2. 无序性:使用集合时python解释器不会维持元素插入顺序
  3. 伸缩性:集合可根据需要随意扩展和搜索

3.1.3 集合使用

3.1.3.1 集合创建

  1. 通过使用{}填充元素

注意:创建空集合是不可以单独使用{}

  1. 通过构造方法 set()
  2. 通过集合推导式
# 1、使用大括号{}填充元素
st1 = {1, 2, 3}
print(type(st1),st1) #<class 'set'> {1, 2, 3}
st2 = {'a', 'b', 'c'}
print(type(st2),st2) #<class 'set'> {'b', 'c', 'a'}# 2、使用构造方法创建集合
st3 = set()  # 空集合
print(type(st3),st3) #<class 'set'> set()
st4 = set('hogwarts')
print(type(st4),st4) #<class 'set'> {'w', 's', 'h', 't', 'o', 'g', 'r', 'a'}li = [1, 1, 2, 2, 3, 3]
st5 = set(li)
print(type(st5),st5) #<class 'set'> {1, 2, 3}# 3、使用集合推导式
st6 = {x for x in li}
print(type(st6),st6) #<class 'set'> {1, 2, 3}# 注意:不要单独使用{ }来创建空集合
st7 = {}  # 这是字典类型
print(type(st7),st7) #<class 'dict'> {}

3.1.3.2 成员检测

  • in

    • 判断元素是否在集合中存在
  • not in
    • 判断元素是否在集合中不存在
"""集合使用:成员检测"""
st = {1, 2, 3, 4, 5}
# in
print(2 in st) #True# not in
print(99 not in st) #True

3.2 集合常用方法

3.2.1 add()

  • add(item):将单个对象添加到集合中
  • 入参:对象 item
  • 返回:None
"""集合方法 add()"""
# 添加元素
st = {1, 2, 3}
st.add(99)
st.add('hogwarts')
print(st) #{1, 2, 99, 3, 'hogwarts'}

3.2.2 update()

  • update(iterable)
  • 批量添加来自可迭代对象中的所有元素
  • 入参:可迭代对象 iterable
  • 返回:None
"""集合方法 update()"""
li = [1, 2, 3]
tup = (2, 3, 4)
st = {'a', 'b', 'c'}# 1、批量添加列表中的元素
st1 = set()
st1.update(li)
# 2、批量添加元组中的元素
st1.update(tup)
# 3、批量添加集合中的元素
st1.update(st)
print(st1) # {1, 2, 3, 4, 'c', 'b', 'a'}

3.2.3 remove()

  • remove(item):从集合中移除指定元素 item。
  • 入参:指定元素值
  • 返回:None
  • 如果 item 不存在于集合中则会引发 KeyError
"""集合方法 remove()"""
# 1、删除已存在的元素
st = {1, 2, 3, 4, 5}
st.remove(2)
print(st)  #{1, 3, 4, 5}# 2、删除不存在的元素
# st.remove(1024)  # KeyError

3.2.4 discard()

  • discard(item):从集合中移除指定对象 item。
  • 入参:指定对象值
  • 返回:None
  • 元素 item 不存在没影响,不会抛出 KeyError 错误
"""集合方法 discard()"""
# 1、删除已存在的元素
st = {1, 2, 3, 4, 5}
st.remove(2)
print(st)  #{1, 3, 4, 5}# 2、删除不存在的元素
st.discard(1024)
print(st) #{1, 3, 4, 5}

3.2.5 pop()

  • pop():随机从集合中移除并返回一个元素。
  • 入参:无。
  • 返回:被移除的元组。
  • 如果集合为空则会引发 KeyError
"""集合方法 pop()"""# 1、随机删除某个对象
st = {1, 2, 3, 4, 5}
item = st.pop()
print(item, st) #1 {2, 3, 4, 5}# 2、集合本身为空会报错
st = set()
st.pop()  # KeyError

3.2.6 clear()

  • clear():清空集合,移除所有元素
  • 入参:无
  • 返回:None
"""集合方法 clear()"""# 1、清空集合
st = {1, 2, 3, 4, 5}
st.clear()
print(st) # set()

3.3 集合运算

3.3.1 交集运算

  • 交集运算
  • intersection()
  • 操作符:&
"""集合运算:交集"""# 交集运算
set1 = {1, 3, 2}
set2 = {2, 4, 3}
print(set1.intersection(set2)) #{2, 3}
print(set1 & set2) #{2, 3}

3.3.2 并集运算

  • 并集运算
  • union()
  • 操作符:
"""集合运算:并集"""# 求两个集合的并集
set1 = {1, 3, 2}
set2 = {2, 4, 3}
print(set1.union(set2)) #{1, 2, 3, 4}
print(set1 | set2) #{1, 2, 3, 4}

3.3.3 差集运算

  • 差集运算
  • difference()
  • 操作符: -
"""集合运算:差集"""
# 集合求差集
set1 = {1, 3, 2}
set2 = {2, 4, 3}#属于集合1,不属于集合2
print(set1.difference(set2)) #{1}
print(set1 - set2) #{1}

3.4 集合推导式

  • 类似列表推导式,同样集合支持集合推导式
  • 语法:{x for x in ... if ...}
# 使用推导式生成集合
st = {x for x in 'hogwarts' if x in 'hello world'}
print(st) #{'w', 'o', 'h', 'r'}

4. 字典 dict

4.1 字典定义与使用

4.1.1 字典定义

  • 字典是无序的键值对集合
  • 字典用大括号{}包围
  • 每个键/值对之间用一个逗号分隔
  • 各个键与值之间用一个冒号分隔
  • 字典是动态
  • 字典的键:任意不可变字符,通常是字符串和数值。同一字典层级内key不可重复
  • 字典的值:任意python对象,可以是另外一个字典对象

4.1.2 字典的使用

4.1.2.1 创建

  1. 使用大括号填充键值对
  2. 通过构造方法 dict()
  3. 使用字典推导式
# 1、使用大括号填充键值对
dc = {'name': 'Harry Potter', 'age': 18}
print(type(dc), dc) #<class 'dict'> {'name': 'Harry Potter', 'age': 18}# 2、使用字典构造方法
dc1 = dict()  # 空字典
dc2 = dict(name="Harry Potter", age=18)  # 关键字参数赋值
print(type(dc2), dc2) #<class 'dict'> {'name': 'Harry Potter', 'age': 18}
dc3 = dict([("name", "Harry Potter"), ("age", 18)])
print(type(dc3), dc3) #<class 'dict'> {'name': 'Harry Potter', 'age': 18}# 3、使用字典推导式
dc4 = {k: v for k, v in [("name", "Harry Potter"), ("age", 18)]}
print(type(dc4), dc4) #<class 'dict'> {'name': 'Harry Potter', 'age': 18}

4.1.2.2 访问元素

  • 与字典也支持中括号记法[key]
  • 字典使用键来访问其关联的值。
  • 访问时对应的 key 必须要存在
"""字典使用:访问元素"""
dc = {"name": "Harry Potter", "age": 18}
# 1、访问存在的key
print(dc["name"]) # Harry Potter
print(dc["age"]) # 18# 2、访问不存在的key,会报KeyError错误
print(dc['hobby']) # KeyError: 'hobby'

4.1.2.3 操作元素

  • 语法:dict[key] = value
  • 添加元素
    • 键不存在
  • 修改元素
    • 键已经存在
"""字典使用:操作元素"""
dc = {"name": "Harry Potter", "age": 18}
# 1、修改年龄,改为20
dc['age'] = 20
print(dc) # {'name': 'Harry Potter', 'age': 20}# 2、新增hobby字段
dc['hobby'] = 'Magic'
print(dc) # {'name': 'Harry Potter', 'age': 20, 'hobby': 'Magic'}

4.1.2.4 嵌套字典

  • 嵌套字典
  • 字典的值可以是字典对象
"""字典使用:嵌套字典"""
dc = {"name": "Harry Potter", "age": 18, "course": {"magic": 90, "python": 80}}
# 1、获取课程Magic的值
print(dc['course']['magic']) #90# 2、把python分数改成100分
dc['course']['python'] = 100
print(dc) #{'name': 'Harry Potter', 'age': 18, 'course': {'magic': 90, 'python': 100}}

4.2 字典常用方法

4.2.1 keys()

  • keys()
  • 返回由字典键组成的一个新视图对象
  • 入参:无
"""字典方法 keys()"""
dc = {"name": "Harry Potter", "age": 18}
keys = dc.keys()
print(type(keys), keys) #<class 'dict_keys'> dict_keys(['name', 'age'])# 1、遍历查看所有的键
for key in keys:print(key)
# name
# age# 2、将视图对象转成列表
print(list(keys)) #['name', 'age']

4.2.2 values()

  • values()
  • 返回由字典值组成的一个新视图对象。
"""字典方法 values()"""
dc = {"name": "Harry Potter", "age": 18}
values = dc.values()
print(type(values), values) #<class 'dict_values'> dict_values(['Harry Potter', 18])# 1、遍历查看所有的值
for value in values:print(value)
# Harry Potter
# 18# 2、将视图对象转成列表
print(list(values)) # ['Harry Potter', 18]

4.2.3 items()

  • items()
  • 返回由字典项 ((键, 值) 对) 组成的一个新视图对象。
"""字典方法 items()"""
dc = {"name": "Harry Potter", "age": 18}
items = dc.items()
print(type(items), items) # <class 'dict_items'> dict_items([('name', 'Harry Potter'), ('age', 18)])# 1、遍历查看所有的项
for item in items:print(item)
# ('name', 'Harry Potter')
# ('age', 18)# 2、将视图对象转成列表
print(list(items)) # [('name', 'Harry Potter'), ('age', 18)]

4.2.4 get()

  • get(key)
  • 获取指定 key 关联的 value 值。
  • 入参:
    • key:字典的键,必传。
  • 返回:
    • 如果 key 存在于字典中,返回 key 关联的 value 值。
    • 如果 key 不存在,则返回 None。
  • 此方法的好处是无需担心 key 是否存在,永远都不会引发 KeyError 错误。
"""字典方法 pop()"""
dc = {"name": "Harry Potter", "age": 18}# 1、访问存在的key
name = dc['name']
print(name) #Harry Potter# 2、访问不存在的key
hobby = dc.get('hobby')
print(hobby) # None

4.2.5 update()

  • update(dict)
  • 使用来自 dict 的键/值对更新字典,覆盖原有的键和值。
  • 入参:
    • dc:字典对象,必传
  • 返回:None
dc = {"name": "Harry Potter", "age": 18}
dc.update({"age": 20, "hobby": "magic"})
print(dc) # {'name': 'Harry Potter', 'age': 20, 'hobby': 'magic'}

4.2.6 pop()

  • pop(key)
  • 删除指定 key 的键值对,并返回对应 value 值。
  • 入参:
    • key:必传
  • 返回:
    • 如果 key 存在于字典中,则将其移除并返回 value 值
    • 如果 key 不存在于字典中,则会引发 KeyError。
"""字典方法 pop()"""
dc = {"name": "Harry Potter", "age": 18}# 1、弹出
item = dc.pop("age")
print(dc, item) #{'name': 'Harry Potter'}  18# 2、删除不存在的key
# dc.pop("hobby")  # 报错keyError

4.3 字典推导式

  • 字典推导式:可以从任何以键值对作为元素的可迭代对象中构建出字典。
  • 实例:给定一个字典对象{'a': 1, 'b': 2, 'c': 3},找出其中所有大于 1 的键值对,同时 value 值进行平方运算。
# 未使用字典推导式的写法
dc = {'a': 1, 'b': 2, 'c': 3}
d_old = dict()
for k, v in dc.items():if v > 1:d_old[k] = v ** 2
print(d_old) #{'b': 4, 'c': 9}# 使用字典推导式
d_new = {k : v ** 2 for k,v in dc.items() if v > 1 }
print(d_new) #{'b': 4, 'c': 9}

【python】(四)python常用数据结构相关推荐

  1. Python机器视觉编程常用数据结构与示例

    Python机器视觉编程常用数据结构与示例 本文总结了使用Python进行机器视觉(图像处理)编程时常用的数据结构,主要包括以下内容: 数据结构 通用序列操作:索引(indexing).分片(slic ...

  2. 【python基础】--常用数据结构

    list tuple dict set四种常用数据结构 list list 有序的集合,可以随时添加.删除其中元素值; 支持list嵌套模式, >>> p = ['a','b']&g ...

  3. 【Python基础】盘点 Python 10 大常用数据结构(上篇)

    我的施工之路 上图施工计划,已完成专题: 1我的施工计划 2数字专题 3字符串专题 4列表专题 5流程控制专题 6编程风格专题 7函数使用 8.面向对象编程(上篇) 9.面向对象编程(下篇) Pyth ...

  4. 【Python基础】盘点 Python 10 大常用数据结构(下篇)

    我的施工之路 虽然艰辛,却有读者们陪伴 Python 常用数据结构 此专题<盘点Python10大常用数据结构>目录: 学习目的 学习目标 1 list 2 tuple 3 set 4 d ...

  5. Python 基础(常用数据结构)

    常用数据结构 1)元组 元组是一种静态的数据结构,无法修改,若要修改只能重新生成新的元组. 输出结果: 元组元素的获取是通过索引值去获得的:例如上面的tup1[0]返回apple:另外你可以直接把tu ...

  6. python有必要看数据结构_盘点 Python 10 大常用数据结构(上篇)

    我的施工计划,已完成专题: Python 常用数据结构 学习目的 这个专题,尽量使用最精简的文字,借助典型案例盘点Python常用的数据结构. 如果你还处于Python入门阶段,通常只需掌握list. ...

  7. python常用的开发环境包括_Python 全栈:Python 四种常用开发环境总结

    包安装和镜像源 先来区分几个小白容易混淆的概念:Python 解释器.PyCharm.Anaconda.Conda 安装.pip 安装.PyCharm 是 Python 常用的集成开发环境,全称 In ...

  8. 《python程序设计教程》第四章常用数据结构课后习题

    1.从键盘输入一个正整数列表,以-1结束,分别计算列表中奇数和偶数的和. n = int(input("请输入一个正整数:")) list3 = [] while n != -1: ...

  9. python四种常用高阶函数

    1.什么是高阶函数 把函数作为参数传入,这样的函数称为高阶函数 例如·: def func1(x,y,f):return f(x) + f(y) num = func1(-10, 2, abs) pr ...

  10. Python 基础常用数据结构

    2019独角兽企业重金招聘Python工程师标准>>> 常用数据结构 1)元组 元组是一种静态的数据结构,无法修改,若要修改只能重新生成新的元组. 输出结果: 元组元素的获取是通过索 ...

最新文章

  1. java 分析java死锁_Java死锁示例–如何分析死锁情况
  2. 【CSU - 1023】【HRBUST - 1039】修路(二分,枚举)
  3. Kettle 学习导航帖整理
  4. 金钱工具类 MoneyUtils.java
  5. PowerShell监控——监控共享打印机 获取打印记录、打印人员、打印文件等详细信息
  6. python视频免费百度云-Python开发视频百度云分享
  7. 云计算:大数据时代的系统工程(二)
  8. python读取xps文件_Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
  9. Windows安全基础-AD域
  10. 面试:Spring Boot的优缺点
  11. Codeforces 1389 C. Good String(枚举)
  12. mysql的column是什么意思_column意思 数据库中的column是什么意思
  13. node内存溢出:JavaScript heap out of memory
  14. 【实例】Python tkinter 实例 桌面便签
  15. 易语言底层 c6,易语言多线程API模块综合应用
  16. 2020-03-15
  17. EasyExcel 自定义标题样式
  18. java计算:拉马努金数
  19. mybatis之update返回响应条数/受影响行数(如果更新数据与原数据一致则返回0)
  20. MySQL SQL分组查询

热门文章

  1. 微信公众号上传图片功能
  2. 仿微信朋友圈图片预览自定义View
  3. uva 11800 Determine the Shape
  4. 【H.264/AVC视频编解码技术详解】二十三、帧间预测编码(1):帧间预测编码的基本原理
  5. 常见的拖垮中小公司技术团队的10宗罪
  6. 最大似然估计与极大似然估计_使用最大似然估计对NFL球队排名
  7. RFID不同频率下的应用场景及优缺点
  8. 大华 / 海康威视(HIKVISION) 网络视像头的连接及使用
  9. 十余种漂亮照片边框简单制作技巧
  10. 操作系统春招面试复习之:文件管理