Python字典和集合讲解

目录
  • 一、Python字典
    • 1.什么是字典
    • 2.字典的创建方式
      • 2.1 通过其他字典创建
      • 2.2 通过关键字参数创建
      • 2.3 通过键值对的序列创建
      • 2.4 通过dict和zip结合创建
    • 3.字典的访问
      • 3.1 根据键访问值
      • 3.2 使用get()方法访问值
    • 4.in 和 not in 在字典中的使用
    • 5.修改和添加字典中的元素
    • 6.删除字典中的元素
    • 7.更新字典
    • 8.获取字典视图的三个方法
    • 9.遍历字典
    • 10.字典的特点
    • 11.复制字典
  • 二、Python集合(set)
    • 1.什么是集合
    • 2.集合创建
    • 3.集合的判断操作
    • 4.集合添加元素
    • 5.集合删除元素
    • 6.集合间的关系

一、Python字典

1.什么是字典

  • Python内置的数据结构之一,与列表一样是一个可变序列
  • 以键值对的方式存储数据,字典是一个无序的序列
  • 在存储数据时要经过hash(key)的计算,计算的结果就是存储的位置,因此字典的键值对顺序并不是按照存储时的先后顺序决定的,而是经过计算得到的存储位置。
  • 字典中的键必    时不可变序列,否则当键改变时,hash计算的结果就会发生变化,导致存储位置发生变化。因此键必须要使用不可变序列

字典的实现原理:

  • 与查新华字典类似,差字典是先根据部首或者拼音查找相应的页码,Python中的字典是根据 key去查找value的所在位置

2.字典的创建方式

#字典创建的两种方式
#第一种,使用花括号
dict_1 = {'num':'20210101','name':'Liming','sex':'male'}
print(dict_1)
#第二种,使用内置函数dict()

2.1 通过其他字典创建

dict_2 = dict(dict_1)
print(dict_2)
print(dict_2 is dict_2)     # True

2.2 通过关键字参数创建

dict_3 = dict(num = "20210101",name = "Liming",sex = 'male')
print(dict_3)
print(dict_1 == dict_3)     #True
print(dict_1 is dict_3)     #False

2.3 通过键值对的序列创建

dict_4 = dict([('num',"20210101"),('name',"Liming"),('sex',"male")])
print(dict_3)

2.4 通过dict和zip结合创建

dict_5 = dict(zip(['num','name','sex'],['20210101','Liming','male']))
print(dict_5)

if dict_1 == dict_2 == dict_3 == dict_4 == dict_5:   #判断字典的值是否相同
    print("创建字典的5种方式相同")
else:
    print("创建字典的5种方式不同")

字典种的键是唯一的,创建字典时若出现“键”相同的情况,则后定义的“键-值”对将覆盖先定义的“键-值”对。

x = {'a':1,'b':2,"b":3}
print(x)
#运行结果
{'a': 1, 'b': 3}
 
  • fromkeys()方法创建字典:当所有的键对应同一个值的时候,可以使用fromkeys创建字典
  • dict.fromkeys(seq[,value]):seq:为字典“键”的值列表   value:为设置键序列(seq)的值,省略时默认为None
dict_1 = dict.fromkeys(['zhangsan','wangwu'])
print(dict_1)
dict_2 = dict.fromkeys(['zhang_san','wang_wu'],18)
print(dict_2)
dict_3 = dict.fromkeys(['zhang_san','wang_wu'],b)
print(dict_3)
#从下面四行代码可以看出,当他们值为可变序列并且引用地址相同时,类似于浅copy
dict_3['wang_wu'].pop()
print(dict_3)
dict_3['wang_wu'].append(10)
print(dict_3)

#运行结果
{'zhangsan': None, 'wangwu': None}
{'zhang_san': 18, 'wang_wu': 18}
{'zhang_san': [18], 'wang_wu': [18]}
{'zhang_san': [], 'wang_wu': []}
{'zhang_san': [10], 'wang_wu': [10]}

3.字典的访问

3.1 根据键访问值

  • 字典中每个元素表示一种映射关系,将提供的“键‘作为下标可以访问对应的值
  • 如果字典中不存在这个”键“,则会抛出异常
#根据键访问值
dict_1 = {"name":"张飞","age":18,"sex":"male"}
print(dict_1["name"])
print(dict_1["sex"])
#print(dict_1["x"])   指定的键不存在,抛出异常

3.2 使用get()方法访问值

  • 在访问字典时,若不确定字典中是否由某个键,可通过get()方法进行获取。
  • 若该键存在,则返回对应的值
  • 若该键不存在,则返回默认值
  • 语法格式

语法格式:

  • dict.get([key[,default = None])  
  • key:要查找的键
  • default:默认值,默认为None,可自行设置需要输出的默认值。如果指定的键不存在,则返回默认值,当default为空时,返回None
#使用get()方法访问值
dict_1 = {"name":"张飞","age":18,"sex":"male"}
print(dict_1.get("name"))
print(dict_1.get("x"))    #返回None
print(dict_1.get("x",18))   #当键不存在时,输出设置的默认值,并不会把键x存入dect_1
print(dict_1.get("age",19))   #当键存在时,输出age原本的值

4.in 和 not in 在字典中的使用

判断键是否在字典中

#in和not in在字典中的使用:判断键是否在字典中
dict_1 = {"name":"张飞","age":18,"sex":"male"}
print("name" in dict_1)           #True
print("张飞" in dict_1)            #False
print("张飞" not in dict_1)        #True

5.修改和添加字典中的元素

当以指定键为下标为字典元素赋值时,有两种含义:

  • 若该键存在字典中,则表示修改该键对应的值
  • 若该键不存在字典中,则表示添加一个新的键值对,也就是添加一个新元素到字典中
dict_1 = {"name":"张飞","age":18}
print(dict_1)
dict_1["name"] = "李四"   #name键存在字典dict_1中,所以此处为修改name的值
print(dict_1)
dict_1["sex"] = "male"    #sex键不存在字典dict_1中,所以此处为添加新的键值对
print(dict_1)

#输出结果
{'name': '张飞', 'age': 18}
{'name': '李四', 'age': 18}
{'name': '李四', 'age': 18, 'sex': 'male'}

6.删除字典中的元素

  删除字典元素: del命令   clear()方法  pop()方法   popitem()方法

del命令:根据”键“删除字典中的元素

dict_1 = {"name":"张飞","age":18,"sex":"male"}
del dict_1["name"]
print(dict_1)
#运行结果
{'age': 18, 'sex': 'male'}

clear()方法:用于清除字典中所有元素,其语法格式如下:

dict_1 = {"name":"张飞","age":18,"sex":"male"}
dict_1.clear()
print(dict_1)
#运行结果
{}

pop()方法:用于获取指定”键“的值,并将这个键值对从字典中移除,并返回该键的值。

  • dict.pop(key[,default])
  • key:要被删除的键
  • default:默认值,当字典中没有要被删除的key时,该方法返回指定的默认值
dict_1 = {"name":"张飞","age":18,"sex":"male"}
print(dict_1.pop("age"))     #删除键age与其值,pop()方法的返回值为,删除的该键的值
print(dict_1)
print(dict_1.pop('age',17))
print(dict_1)
print(dict_1.pop('name',"里斯"))
print(dict_1)

 popitem()方法:用于随机获取一个键值对,将其删除,并以元组的方式返回被删除的键值对

  • dict.popitem() :该方法无参数
dict_1 = {"name":"张飞","age":18,"sex":"male"}
x = dict_1.popitem()
print(x,type(x))
print(dict_1)
#运行结果
('sex', 'male') <class 'tuple'>
{'name': '张飞', 'age': 18}

7.更新字典

使用update()方法:可以将新字典的键值对,一次性全部添加到当前字典中
如果两个字典存在相同的键,则以新字典中的值为准,更新当前字典
dict.updata(dict2)

  • dict:当前字典
  • dict2:新字典
dict_1 = {"name":"张飞","age":18}
dict_2 = {"name":"李四","sex":"male"}
dict_1.update(dict_2)
print(dict_1)
print(dict_2)
#运行结果
{'name': '李四', 'age': 18, 'sex': 'male'}
{'name': '李四', 'sex': 'male'}

8.获取字典视图的三个方法

key()方法

#keys()方法:获取字典中所有的key
dict_1 = {"name":"张飞","age":18,"sex":"male"}
key_1 = dict_1.keys()
print(key_1,type(key_1)) #可以看出获取到了字典所有的键,并存放在了一个貌似列表的dict_keys视图中
key_2 = list(key_1)    #将对象key_1视图变成列表,并不改变原来的key_1视图
print(key_1)
print(key_2)
#运行结果
dict_keys(['name', 'age', 'sex']) <class 'dict_keys'>
dict_keys(['name', 'age', 'sex'])
['name', 'age', 'sex']

values()方法

#values()方法:获取字典中所有的value
dict_1 = {"name":"张飞","age":18,"sex":"male"}
value_1 = dict_1.values()
print(value_1,type(value_1)) #可以看出获取到了字典所有的值,并存放在了一个貌似列表的dict_values视图中
value_2 = list(value_1)
print(value_1)
print(value_2)
#运行结果
dict_values(['张飞', 18, 'male']) <class 'dict_values'>
dict_values(['张飞', 18, 'male'])
['张飞', 18, 'male']

items()方法

#items()方法:获取字典中所有的键值对
dict_1 = {"name":"张飞","age":18,"sex":"male"}
items_1 = dict_1.items()
#可以看出获取到了字典所有的键值对,并将键值对存放在了元组中,再把元组存放在列表中,视图类型为:dict_items
print(items_1,type(items_1))
items_2 = list(items_1)     #将视图转换成列表
print(items_2)
items_3 = tuple(items_2)    #将列表转换成元组
print(items_2)
print(items_3)
#运行结果
dict_items([('name', '张飞'), ('age', 18), ('sex', 'male')]) <class 'dict_items'>
[('name', '张飞'), ('age', 18), ('sex', 'male')]
[('name', '张飞'), ('age', 18), ('sex', 'male')]
(('name', '张飞'), ('age', 18), ('sex', 'male'))

9.遍历字典

使用for循环遍历,列表、元组和集合的组合时

  • 当变量x为一个时,x会直接获取列表(元组)的值
  • 当变量x,y···的个数刚好与列表(元组)的个数相同时,则直接将值依次赋给变量

注意:只有在使用列表和元组和集合的两两组合时才能这样使用。

"""
使用for循环遍历,列表和元组的组合时,
    ·当变量x为一个时,x会直接获取列表(元组)的值
    ·当变量x,y···的个数刚好与列表(元组)的个数相同时,则直接将值依次赋给变量
"""
a = [('Mary', 'C',"d"),('Jone', 'java',"d"),('Lily', 'Python',"d"),('Lily', 'Python',"d")]
for x in a:
    print(x)        #列表里面存储的元组,只有一个变量x,所以将元组直接赋值给x
print("============================================")
for x,y,z in a:     #列表里面存储的元组,每个元组里面存储了3个元素,刚好可以用三个变量xyz接收这三个元素
    print(x,y,z)
print("============================================")

a = (['Mary', 'C',"d"],['Jone', 'java',"d"],['Lily', 'Python',"d"],['Lily', 'Python',"d"])
for x in a:         #元组里面存储的列表,只有一个变量x,所以将元组直接赋值给x
    print(x)
print("============================================")
for x,y,z in a:     #元组里面存储的列表,每个列表里面存储了3个元素,刚好可以用三个变量xyz接收这三个元素
    print(x,y,z)
#运行结果
('Mary', 'C', 'd')
('Jone', 'java', 'd')
('Lily', 'Python', 'd')
('Lily', 'Python', 'd')
============================================
Mary C d
Jone java d
Lily Python d
Lily Python d
============================================
['Mary', 'C', 'd']
['Jone', 'java', 'd']
['Lily', 'Python', 'd']
['Lily', 'Python', 'd']
============================================
Mary C d
Jone java d
Lily Python d
Lily Python d

a = {('Mary', 'C',"A"),('Jone', 'java',"B"),('Lily', 'Python',"C"),('Lily', 'Python',"D")}
for x in a:         #集合里面存储的元组,只有一个变量x,所以将元组直接赋值给x
    print(x)
for x,y,z in a:      #集合里面存储的元组,每个元组里面存储了3个元素,刚好可以用三个变量xyz接收这三个元素
    print(x,y,z)
#运行结果
('Mary', 'C', 'A')
('Lily', 'Python', 'D')
('Jone', 'java', 'B')
('Lily', 'Python', 'C')
Mary C A
Lily Python D
Jone java B
Lily Python C

遍历字典中所有的键值对

使用items()方法,该方法以列表的形式返回可遍历的键值对元组

stu_class = {
    'Mary': 'C',
    'Jone': 'java',
    'Lily': 'Python',
    'Lilo': 'Python'
}
for name,cla in stu_class.items():
    print(name,"选修的课程为:",cla)
#运行结果
Mary 选修的课程为: C
Jone 选修的课程为: java
Lily 选修的课程为: Python
Lilo 选修的课程为: Python

遍历字典中所有的键

当不需要字典中的值时,可使用keys()方法,只遍历字典中的键,该方法以列表返回一个字典中所有的键

stu_class = {
    'Mary': 'C',
    'Jone': 'java',
    'Lily': 'Python',
    'Lilo': 'Python'
}
for name in stu_class.keys():
    print(name)
#运行结果
Mary
Jone
Lily
Lilo

 遍历字典中所有的值

当只关心字典所包含的值时,可以使用values()方法,该方法以列表形式返回字典中所有的值

stu_class = {
    'Mary': 'C',
    'Jone': 'java',
    'Lily': 'Python',
    'Lilo': 'Python'
}
for cla in stu_class.values():
    print(cla)
#运行结果
C
java
Python
Python

10.字典的特点

  • 字典中所有的元素都是一个键值对(key - value) ,key不允许重复,但是value可以重复
  • 字典中的元素是无序的
  • 字典中的key是不可变对象(不可变序列)
  • 字典页可以根据需要动态伸缩
  • 字典会浪费较大的内存,是一种使用空间换时间的数据

11.复制字典

直接赋值:对象的引用
浅复制(copy()方法):拷贝父对象,引用对象内部的子对象
深复制(deepcopy()方法):copy模块的deepcopy()方法,完全复制父对象及其子对象

dict1 = {'user':'runoob','num':[123]}
dict2 = dict1       #引用对象
dict3 = dict1.copy()    #浅复制,深复制父对象,子对象不复制,还是引用
import copy
dict4 = copy.deepcopy(dict1) #深复制,完全复制父对象和子对象
print(1,dict1,id(dict1))                #1 {'user': 'runoob', 'num': [123]} 1630766832896
dict1['user'] = 'root'                  
print(1,dict1,id(dict1))                #1 {'user': 'root', 'num': [123, 23]} 1630766832896
print(2,dict2,id(dict2))                #2 {'user': 'root', 'num': [123, 23]} 1630766832896
print(3,dict3,id(dict3))                #3 {'user': 'runoob', 'num': [123, 23]} 1630766833088
print(4,dict4,id(dict4))                #4 {'user': 'runoob', 'num': [123]} 1630767214080

二、Python集合(set)

1.什么是集合

  • python语言提供的内置数据结构
  • 与列表和字典一样,都属于可变序列
  • 集合是没有value的字典
  • 集合类型与其他类型最大的区别在于,它不包含重复元素

2.集合创建

#集合创建方式一:使用{}
set_1 = {"Python","Hello",90}
print(set_1)
set_2 = {1,1,2,3,4,4,"Python","Python"}    #集合中的元素不允许重复
print(set_2)
set_3 = {1,2.2,(1,2,3,4),"Python"}
print(set_3)
#set_4 = {1,2.2,[1,2,3,4]}    # 代码报错:集合中的元素不允许为 可变数据类型(可变序列)

#集合创建方式二:使用内置函数 set():将字符出、列表、元组、range()等对象转化成集合
set_4 = set("python")
print(set_4)
set_5 = set([1,2,3,4,5])
print(set_5)
set_6 = set((1,2,"Hello"))
print(set_6)
set_7 = set(range(5))
print(set_7)
set_8 = set()          #创建空集合
print(set_8)
set_9 = {}
print(type(set_9))     # <class 'dict'> :所以创建空集合的时候,不能直接使用{}

3.集合的判断操作

in  或者  not  in :   判断元素是否在集合中

set_1 = {10,20,30,40,50}
print(10 in set_1)          #True
print(100 in set_1)         #False
print(20 not in set_1)      #False
print(100 not in set_1)     #True

4.集合添加元素

集合添加元素:add()方法、update()方法

set_1.add(x)方法:如果数据项x不在结合set_1中,将x添加到set_1中    (一次添加一个元素,元素不重复的前提下)

set_1.update(T)方法:合并结合T中的元素到当前集合set_1中,并自动去除重复元素  (至少添加一个元素,元素不重复的前提下)

#集合添加元素
set_1 = {1,2.2,"Python"}
set_2 = {(1,2,True,"Hello"),2.2,"Python","China"}
set_1.add((1,2,True,"Hello"))
print(set_1)
set_1.update(set_2)
print(set_1)
set_1.update([10,20,30])   #可以添加集合中的元素
print(set_1)
set_1.update((40,50,60))   #可以添加元组中过的元素
print(set_1)
#运行结果
{1, 2.2, (1, 2, True, 'Hello'), 'Python'}
{1, 2.2, 'China', (1, 2, True, 'Hello'), 'Python'}
{1, 2.2, 'China', 10, (1, 2, True, 'Hello'), 20, 'Python', 30}
{1, 2.2, 'China', 40, 10, (1, 2, True, 'Hello'), 50, 20, 'Python', 60, 30}

5.集合删除元素

集合删除元素:remove()方法  discard()方法  pop()方法   clear()方法

S.remove(x)方法:如果x在集合S中,移除该元素;如果x不存在则抛出异常

S.discard(x)方法:如果x在集合S中,移除该元素;如果x不存在不会报错

set_1 = {1,(1,2,True,"Hello"),2.2,"Python"}
set_1.remove(1)
print(set_1)
# set_1.remove(1)   #集合中无元素1,执行此代码会抛出异常
set_1.discard(2.2)
print(set_1)
set_1.discard(2.2)  #集合中无元素2.2,不过执行此代码不会抛出异常
print(set_1)
#运行结果
{(1, 2, True, 'Hello'), 2.2, 'Python'}
{(1, 2, True, 'Hello'), 'Python'}
{(1, 2, True, 'Hello'), 'Python'}

S.pop()方法:随机删除并返回集合中过的一个元素,如果集合为空则抛出异常

S.clear()方法:清空集合

set_1 = {1,(1,2,True,"Hello"),2.2,"Python"}
print(set_1.pop())
print(set_1)
set_1.clear()
print(set_1)
#set_1.pop() #集合为空,执行此行代码,会抛出异常
#运行结果
1
{2.2, 'Python', (1, 2, True, 'Hello')}
set()

6.集合间的关系

两个集合是否相等  ==  、  !=   、  is   、not  is

set_1 = {10,20,30,40}
set_2 = {40,30,10,20}
print(set_1 == set_2)   #True    比较集合的值是否相等
print(set_1 is set_2)   #False   比较集合的引用地址是否相等

一个集合是否是另一个集合的子集

可以调用方法 issubset() 判断
B是A的子集
A = {1,2,3,4,5,6}
B = {1,2,3,4}
print(B.issubset(A))     #True  B是A的子集

一个集合是否是另一个集合的超集

可以调用方法 issuperset()  判断
A是B的子集
A = {1,2,3,4,5,6}
B = {1,2,3,4}
print(A.issuperset(B))   #True  A是B的超集

两个集合是否没有交集  

可以调用方法 isdisjoint() 判断  
A = {1,2,3,4,5,6}
B = {1,2,3,4}
print(A.isdisjoint(B))   #False  判断A和B是否没有交集
B = {7,8,9,10}
print(A.isdisjoint(B))   #True  判断A和B是否没有交集

到此这篇关于Python字典和集合讲解的文章就介绍到这了,更多相关Python字典和集合内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python推导式简单示例【列表推导式、字典推导式与集合推导式】

    本文实例讲述了Python推导式.分享给大家供大家参考,具体如下: 1. 列表推导式 >>> li = [1,2,3,4,5,6] # 求元素的平方 >>> li_a = [x**2 for x in li ] >>> li_a [1, 4, 9, 16, 25, 36] # 提取偶数值 >>> li_b = [x for x in li if x%2==0] >>> li_b [2, 4, 6] # 将多维数组转换

  • Python字符串、列表、元组、字典、集合的补充实例详解

    本文实例讲述了Python字符串.列表.元组.字典.集合.分享给大家供大家参考,具体如下: 附加: python的很多编译器提供了代码补全功能,并且在填入参数时提供提示功能 字符串 1.常用函数: 字符串是不可变对象,字符串的方法都不会改变原字符串的数据 s=" hEllo world!\t " print("s.capitalize():",s.capitalize())#标题格式化 print("s.center(20,'-'):",s.ce

  • python 列表、字典和集合的添加和删除操作

    在python中,元组不可变,只能查询不能修改,列表.字典和集合的基本操作,各不相同,下面就来比较一下它们的添加和删除操作吧. 添加 一.列表 1."+"号 #两个数组相加,生成一个大数组 a = [1, 2, 3] b = [4, 5, 6] c = a + b print(c) #输出结果:[1, 2, 3, 4, 5, 6] 2.extend方法 #只接受列表参数并将参数的每个元素都添加到原有的列表中 a = [1, 2, 3] b = [4, 5, 6] a.extend(b)

  • python--字典(dict)和集合(set)详解

    目录 一.集合 1.集合定义 2.创建集合 3.去重 4.集合增删 5.关系运算 6.排序 7.frozenset 8.练习 9.特性 二.字典 1.字典定义 2.字典打印 3.字典元素删除 4.setdefault 5.defaultdict 总结 一.集合 1.集合定义 集合(set)是一个无序的不重复元素序列. 2.创建集合 使用大括号 { } 或者 set() 函数创建集合; 创建一个空集合必须用 set() 而不是 { } { } 是用来创建一个空字典. s = {1,2,3,4} p

  • 使用python实现哈希表、字典、集合操作

    哈希表 哈希表(Hash Table, 又称为散列表),是一种线性表的存储结构.哈希表由一个直接寻址表和一个哈希函数组成.哈希函数h(k)将元素关键字k作为自变量,返回元素的存储下标. 简单哈希函数: 除法哈希:h(k) = k mod m乘法哈希:h(k) = floor(m(kA mod 1)) 0<A<1 假设有一个长度为7的数组,哈希函数h(k) = k mod 7,元素集合{14, 22, 3, 5}的存储方式如下图: 哈希冲突 由于哈希表的大小是有限的,而要存储的值的总数量是无限的

  • Python字典生成式、集合生成式、生成器用法实例分析

    本文实例讲述了Python字典生成式.集合生成式.生成器用法.分享给大家供大家参考,具体如下: 字典生成式: 跟列表生成式一样,字典生成式用来快速生成字典,不同的是,字典需要两个值 #d = {key: value for (key, value) in iterable} d1 = {'x': 1, 'y': 2, 'z': 3} d2 = {k: v for (k, v) in d1.items()} print(d2) 集合生成式: 集合生成式格式和列表生成式类似,不过用的是大括号: s1

  • Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】

    本文实例讲述了Python基础学习之基本数据结构.分享给大家供大家参考,具体如下: 前言 相比于PHP,Python同样也是脚本解析语言,所以在使用Python的时候,变量和数据结构相对于编译语言来说都会简单许多,但是Python相比于PHP来说,变量类型的定义会比较严格:string->int的转换没有PHP那么方便.但这也让程序稳定性有所提升,例如和客户端交互的时候,数据库取出来的数字int和缓存取出来的数字(默认是string)需要手动进行转换(否则会有报错提示),而PHP不需要手动转换的

  • Python基本数据结构与用法详解【列表、元组、集合、字典】

    本文实例讲述了Python基本数据结构与用法.分享给大家供大家参考,具体如下: 列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能.以下是 Python 中列表的方法: 下面示例演示了列表的大部分方法: >>> a = [66.25, 333, 333, 1, 1234.5] >>> print(a.count(333), a.count(66.25), a.count('x')) 2 1 0 >

  • python基础入门之字典和集合

    python 中有6大标准类型: 数字(Number) 字符串(String) 列表(List) 元组(Tumple) 集合(Set) 字典(Dictionary) 前面已经介绍了上面4种,还有下面两种来介绍一下. 正文 字典 字典看起来非常像json,是的非常非常像,但是我们起码需要明白的是json是一个字符格式,而字典是一种数据结构. 区别: 1)json的key只能是字符串,dict的key可以是任何可hash的对象,例如:字符串.数字.元组等. 2)json的key可以是有序.重复的:d

  • Python字典和集合讲解

    目录 一.Python字典 1.什么是字典 2.字典的创建方式 2.1 通过其他字典创建 2.2 通过关键字参数创建 2.3 通过键值对的序列创建 2.4 通过dict和zip结合创建 3.字典的访问 3.1 根据键访问值 3.2 使用get()方法访问值 4.in 和 not in 在字典中的使用 5.修改和添加字典中的元素 6.删除字典中的元素 7.更新字典 8.获取字典视图的三个方法 9.遍历字典 10.字典的特点 11.复制字典 二.Python集合(set) 1.什么是集合 2.集合创

  • Python中的集合类型知识讲解

    集合类型         数学上,,把set称做由不同的元素组成的集合,集合(set)的成员通常被称做集合元素(set elements).Python把这个概念引入到它的集合类型对象里.集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.数学集合转为Python的集合对象很有效,集合关系测试和union.intersection等操作符在Python里也同样如我们所预想地那样工作.         和其他容器类型一样,集合支持用in和not in操作符检查成员,由len()内建函数得

  • Python字典高级用法深入分析讲解

    目录 一. collections 中 defaultdict 的使用 1.字典的键映射多个值 2.统计字典中某个值出现的次数 二.collections 创建有序字典 1.改变 key-value 的顺序 2.删除 key_value 三.字典排序 1.按照 key 进行排序 2.按照 value 进行排序 四.通过某个关键字排序一个字典列表 一. collections 中 defaultdict 的使用 1.字典的键映射多个值 将下面的列表转成字典 l = [('a',2),('b',3)

  • Python中字典和集合学习小结

    映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元组等 包含可变对象的列表.字典和元组不能用作键 引用不存在的键会引发KeyError异常 1)字典 dict { } 空字典 { key1:value1,key2:value2,... } 字典在其它编程语言中又称作关联数组或散列表: 通过键实现元素存取:无序集合:可变类型容器,长度可变,异构,嵌套 支持的操作: len(D

  • Python字典实现简单的三级菜单(实例讲解)

    如下所示: data = { "北京":{ "昌平":{"沙河":["oldboy","test"],"天通苑":["链接地产","我爱我家"]}, "朝阳":{"望京":["奔驰","陌陌"],"国贸":["CICC",&quo

  • 基于python元祖与字典与集合的粗浅认识

    一,元祖(tuple) 1.元祖是不能修改的,通常写成圆括号中的一系列项,位置有序,固定长度 2.实际上元祖支持字符串和列表的一般序列操作,"+","*"以及分片操作应用于元祖时会返回新的元祖 print((1,2)+(3,4))>>>>(1,2,3,4) print((1,2)*4)>>>>(1,2,1,2,1,2,1,2) T=(1,2,3,4) print(T[0],T[1:3])>>>>

  • Python字典中的键映射多个值的方法(列表或者集合)

    一个字典就是一个键对应一个单值的映射.如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中, 比如列表或者集合里面.比如,你可以像下面这样构造这样的字典: d = { 'a' : [1, 2, 3], 'b' : [4, 5] } e = { 'a' : {1, 2, 3}, 'b' : {4, 5} } 选择使用列表还是集合取决于你的实际需求.如果你想保持元素的插入顺序就应该使用列表, 如果想去掉重复元素就使用集合(并且不关心元素的顺序问题). 你可以很方便的使用 collect

随机推荐