一、字典(dict)

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d ={key1 :,:,:}

 字典的特性:

        1) 字典是没有顺序的,是任意对象的无序集合。

        2) 字典的键是唯一的,不能多次出现,多次出现时取最后一个值。

        3) 字典中的值可以取任意数据类型,但键只能使用不可变类型(字符串、数字或元组)。

        4) 字典中的元素可增删。

        5) 因为没有顺序,所以不存在索引。

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

# 创建空字典
my_dict = {}
# 创建非空字典
person = {"name": "张三", 'age': 18}
或
person = dict({"name": "张三", 'age': 18})

dict

一、增加

字典中的键是唯一的,增加元素就是直接通过键值对进行添加

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

students = {"1000": "张三", '1001': "susan", "1002": "lily", "1003": "李四"}

students[1004] = "哈哈"
print(students)

View Code

二、修改

修改已有键/值对,新的值会替代原有的值

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

students = {"1000": "张三", '1001': "susan", "1002": "lily", "1003": "李四"}

students[1001] = "赵四"
print(students)

View Code

三、删除

删除指定键值对,del 字典[key]

删除指定键值对并返回被删除的值,字典.pop(key)

删除字典中的最后一对键和值,并以元组的形式返回,字典.popitem() 

清空字典,字典.clear()

删除字典,del 字典名

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

students = {"1000": "张三", '1001': "susan", "1002": "lily", "1003": "李四"}

# del students['1001']          #  删除字典中指定的键和值,{'1000': '张三', '1002': 'lily', '1003': '李四'}
# name = students.pop("1001")    # 删除字典中指定的键和值,并返回被删除的值{'1000': '张三', '1002': 'lily', '1003': '李四'}
# print(name)                     # susan

# name =students.popitem()       #删除字典中的最后一对键和值 {'1000': '张三', '1001': 'susan', '1002': 'lily'},并以元组的形式返回:
# print(name)                    #  ('1003', '李四')

# students.clear()                 # 清空字典{}
print(students)

# del students                     #删除整个字典
# students.pop("1005")             # 删除不存在的键值对,会报异常KeyError: '1005'

View Code

四、查找

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

students = {"1000": "张三", '1001': "susan", "1002": "lily", "1003": "李四"}

# print("1000" in students)                # 判断字典中的值是否存在,True
# name= students["1001"]                  # 根据键取值,若键不存在报错 KeyError
# name = students.get("1001")             # 使用get取值,若键不存在则返回None
# name = students.get("1005","lala")      # 使用get取值,若键存在则返回对应的值,若键不存在则返回指定的值lala

# print(name)

View Code

五、内置函数

len(dict)   计算字典元素个数,即键的总数。

str(dict)  输出字典可打印的字符串表示。

type(dict)  返回输入的变量类型,如果变量是字典就返回字典类型

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

students = {"1000": "张三", '1001': "susan", "1002": "lily", "1003": "李四"}

print(len(students))       # 计算字典元素个数  4
print(str(students))       # 输出字典可打印的字符串表示    {'1000': '张三', '1001': 'susan', '1002': 'lily', '1003': '李四'}
print(type(students))      # 返回输入的变量类型,如果是变量是字典类型就返回字典类型  <class 'dict'>

View Code

六、常用方法

     clear

清空字典内容

     get

获取指定键对应值

     items

返回包含对象中所有变量及其值的2元组的列表

     keys

返回对象中所有键的元组形式

     values

返回对象中所有值的元组形式

     pop

如果键在字典中,则移除它并返回其值,否则返回默认值。如果未给定默认值且键不在字典中,则会引发键错误。

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

students = {"1000": "张三", '1001': "susan", "1002": "lily", "1003": "李四"}
teachers = {"T001":"王老师","T002":"张老师","T003":"李老师",}
seq = ('Name','Age','class')

students.update(teachers)        # 字典合并{'1000': '张三', '1001': 'susan', '1002': 'lily', '1003': '李四', 'T001': '王老师', 'T002': '张老师', 'T003': '李老师'}
students2 = students.copy()        #返回一个字典的浅复制 {'1000': '张三', '1001': 'susan', '1002': 'lily', '1003': '李四'}
print(students)

print(students.fromkeys(seq,2))  # fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值,{'Name': 2, 'Age': 2, 'class': 2}

print(students.items())                 #以列表返回可遍历的(键, 值) 元组数组,dict_items([('1000', '张三'), ('1001', 'susan'), ('1002', 'lily'), ('1003', '李四')])
print(students.keys())                  #以列表返回一个字典所有的键,dict_keys(['1000', '1001', '1002', '1003'])
print(students.values())                 #以列表返回字典中的所有值,dict_values(['张三', 'susan', 'lily', '李四'])

View Code

遍历字典

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

students = {"1000": "张三", '1001': "susan", "1002": "lily", "1003": "李四"}
#方法1
for key in students:
    print(key,students[key])       #打印key和value的值,推荐使用这种方式,速度快

#方法2
for k,v in students.items():       #会先把dict转成list,这种方式不推荐,因为会把字典转换成列表,效率不高,数据量大时莫用
    print(k,v)

View Code

 字典排序(sorted)

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

# 排序 sorted
students = {"1000": "张三", '1001': "susan", "1002": "lily", "1003": "李四"}

print('排序:',sorted(students))             #默认按键排序    ['1000', '1001', '1002', '1003']
name = sorted(students.values())              #values排序, ['lily', 'susan', '张三', '李四']
print(name)

dict1 = sorted(students.items())                  #key,value默认按key排序,[('1000', '张三'), ('1001', 'susan'), ('1002', 'lily'), ('1003', '李四')]
print(dict1)

dict1 = sorted(students.items(),key=lambda item:item[1])          #按value排序,[('1002', 'lily'), ('1001', 'susan'), ('1000', '张三'), ('1003', '李四')]
print(dict1)

View Code

二、集合(set)

集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,格式为:parame ={value01,value02,...} 或者 parame = set(value)

注意:创建一个空集合必须用{ },因为 { } 是用来创建一个空字典。

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

# 创建集合
# 1、直接创建
set1 = {1,2,3,2}             #创建一个数值集合,自动去重{1, 2, 3}
# 2、使用set()函数强制类型转换创建,my_set = set(iteration),iteration是一个可迭代对象,它可以是元组、列表或range对象
set1 = set([3,5,9,10])       #创建一个数值集合
set1 = set('hello world')    #创建一个唯一字符的集合 ,{'e', 'w', ' ', 'd', 'l', 'o', 'r', 'h'}

print(set1)

set

元素有以下几个特性:

        1) 无序性,集合中保存的元素是没有顺序的。

        2) 多样性,集合中可以保存多种数据类型的元素。

        3) 唯一性,集合中的元素都是唯一存在的,不会重复出现。

 一、增加

s.add(),将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

s.update(),添加多个元素,且参数可以是列表,元组,字典等,x 可以有多个,用逗号分开

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

name = {"张三","李四","王五","susan","lily"}

name.add("xiaowang")               #  添加一项 {lily', 'susan', '张三', '李四', 'xiaowang', '王五'}
name.update(["xiaohong","xiaolan"])   # 添加列表{'张三', 'susan', '李四', 'lily', '王五', 'xiaohong', 'xiaolan'}
name.update(('pear','apple'))         # 添加元组{'李四', 'pear', 'apple', '张三', 'susan', 'lily', '王五'}
name.update([1,2],[3,4])              # 添加多项{'李四', 1, 2, 3, 4, '王五', 'susan', 'lily', '张三'}

print(name)

View Code

二、删除

s.remove(),将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误

s.discard(),将元素 x 从集合 s 中移除,如果元素不存在,不会发生错误

s.pop(),随机删除集合中的一个元素,删除的为集合的左面第一个元素,并返回

s.clear(),清空集合

del s ,删除集合

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

name = {"张三","李四","王五","susan","lily"}

name.remove("王五")             # 删除指定元素 王五{'李四', '张三', 'lily', 'susan'}
name.discard("haha")            # 删除不存在的元素不会报错, {'李四', '张三', 'lily', 'susan'}
s = name.pop()                  # 随机删除集合最左面的第一个元素,并返回 {'李四', 'lily', '王五', 'susan'} , 张三
print(s)
name.clear()                     # 清空集合, set()

print(name)

del name                           # 删除集合

View Code

三、常用方法

in、not in,快速判断元素是否在集合内

len(s),集合的长度,即元素的个数

s.copy() ,复制

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

name = {"张三","李四","王五","susan","lily"}

print( "张三" in name )            # True
print( "张三" not in name )        # False

name1 = name.copy()               # 复制{'lily', 'susan', '李四', '张三', '王五'}
# print(name1)

print(len(name))                    # 集合中元素的个数,5

View Code

四、集合的运算(交集、并集和差集)

& 运算符 或者 intersection()方法,交集

| 运算符 或者 union()()方法,并集

- 运算符 或者 difference()()方法,差集 

^ 运算符 或者 symmetric_difference()方法,两个集合不重复的元素 

s.isdisjoint(),判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

<= 运算符 或者 s.issubset(),判断指定集合是否为该方法参数集合的子集

>= 运算符 或者 s.issuperset,判断该方法的参数集合是否为指定集合的子集

Python字典如何查最后一个数字 python字典最后一个元素_Python字典如何查最后一个数字

Python字典如何查最后一个数字 python字典最后一个元素_Code_02

A = {'数学','语文','英语','物理','化学','生物'}
B = {'数学','语文','英语','政治','地理','历史'}

# 1、交集  &运算符 或者 intersection()方法
# intersection_update() 方法不同于 intersection() 方法,
# intersection() 方法是返回一个新的集合,
# intersection_update() 方法是在原始的集合上移除不重叠的元素。
print( A & B )                  # 集合A和B中同时存在的元素 {'语文', '数学', '英语'}
print( A.intersection(B) )      # 集合A和B中同时存在的元素 {'语文', '数学', '英语'}

A.intersection_update(B)        # 集合A和B中同时存在的元素 {'语文', '数学', '英语'}
print(A)

# 2、并集  |运算符 或者 union()方法
print( A | B )                  # 集合A或者B中包含的所有元素 {'化学', '数学', '语文', '地理', '英语', '物理', '历史', '政治', '生物'}
print( A.union(B) )             # 集合A或者B中包含的所有元素 {'化学', '数学', '语文', '地理', '英语', '物理', '历史', '政治', '生物'}

# 3、差集   -运算符 或者 difference()方法
# difference_update() 方法与 difference() 方法的区别在于
# difference() 方法返回一个移除相同元素的新集合,
# difference_update() 方法是直接在原来的集合中移除元素,没有返回值。
print( A - B )                  # 包含集合A而不包含集合B中的元素 {'化学', '生物', '物理'}
print( A.difference(B) )        # 包含集合A而不包含集合B中的元素 {'化学', '生物', '物理'}

A.difference_update(B)          # 包含集合A而不包含集合B中的元素 {'化学', '生物', '物理'}
print(A)

# 4、两个集合不重复的元素 ^ 运算符 或者 symmetric_difference()方法
# symmetric_difference() 方法与 difference() 方法的区别在于
# symmetric_difference() 方法返回两个集合中不重复的元素集合,
# symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
print( A ^ B )                          # 返回A、B两个集合中不重复的元素集合 {'历史', '政治', '物理', '生物', '化学', '地理'}
print( A.symmetric_difference(B) )      # 返回A、B两个集合中不重复的元素集合 {'历史', '政治', '物理', '生物', '化学', '地理'}

A.symmetric_difference_update(B)        # 返回A、B两个集合中不重复的元素集合 {'历史', '政治', '物理', '生物', '化学', '地理'}
print(A)

# 5、判断两个集合是否包含相同的元素 isdisjoint()()方法
print( A.isdisjoint(B) )         # 判断两个集合是否包含相同的元素,有交集-False,无交集-True

# 6、判断指定集合是否为该方法参数集合的子集  运算符<= 或者 issubset()方法
print( A.isdisjoint(B) )        # 判断集合A是否为集合B的子集 ,是子集-True,不是子集-Flase
print( A <= B )                 # 判断集合A是否为集合B的子集 ,是子集-True,不是子集-Flase

# 7、判断该方法的参数集合是否为指定集合的子集  运算符>= 或者 issuperset()方法
print( A.issuperset(B) )        # 判断集合B是否为集合A的子集 ,是子集-True,不是子集-Flase
print( A >= B )                 # 判断集合B是否为集合A的子集 ,是子集-True,不是子集-Flase

View Code