Python3基础-基本数据类型之字典

字典

  1. 字典是另一种可变容器模型,且可存储任意类型对象。无序的
  2. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:d = {key1 : value1, key2 : value2 }
  3. 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
  4. dict={‘a‘:1,‘a‘:2,‘c‘:3} #key值相同时,最后的一个键值对会替换前面的
    print(dict) # 则输出的是 {‘a‘: 2, ‘c‘: 3}
  5. #字典的value的值可以任意值
    dict={
        "code":10010,
        "data":[
            ‘adsderasdasd‘,
            ‘‘,
            11,
            True,
            {
                ‘data1‘:1,
                ‘value‘:‘2‘,
                ‘mege‘:(1,2),
    
            }
        ],
        ‘message‘:‘请输入正确的数值‘,
    }
    
    print(dict) #可以正常输出  {‘code‘: 10010, ‘data‘: [‘adsderasdasd‘, ‘‘, 11, True, {‘data1‘: 1, ‘value‘: ‘2‘, ‘mege‘: (1, 2)}], ‘message‘: ‘请输入正确的数值‘}
  6. dict1={
        1:1,
        ‘a‘:2,
        True:3,
        False:4
    } #key值 True、False
    print(dict1) # 则输出的是 {1: 3, ‘a‘: 2, False: 4}  #为什么True输出不了  因为True 1   字典里面已经有了 1:1
    
    # dict2={
    #     1:1,
    #     ‘a‘:2,
    #     [1,2,‘a‘]:‘b‘
    # } #key值 列表
    # print(dict2)  #会报错 TypeError: unhashable type: ‘list‘
    
    dict3={
        1:1,
        ‘a‘:2,
        (1,2,‘a‘):‘b‘
    } #key值 元祖
    print(dict3)  #可以正常输出  {1: 1, ‘a‘: 2, (1, 2, ‘a‘): ‘b‘}   因为元祖不可变
    
    # dict4={
    #     1:1,
    #     ‘a‘:2,
    #     {1:2}:‘b‘
    # } #key值 字典
    # print(dict3)  #会报错 TypeError: unhashable type: ‘dict‘

获取字典的值

#字典
dict={‘a‘:1,‘b‘:2,‘c‘:3}
print(dict[‘b‘])  #输出字典中key为b值 为 2
print(dict)   #输出字典dict    {‘a‘: 1, ‘b‘: 2, ‘c‘: 3}

#嵌套查询
dict1={
    "code":10010,
    "data":[
        ‘adsderasdasd‘,
        ‘1‘,
        11,
        True,
        {
            ‘data1‘:1,
            ‘value‘:‘2‘,
            ‘mege‘:(1,2),

        }
    ],
    ‘message‘:‘请输入正确的数值‘,
}
value=dict1[‘data‘][4][‘mege‘][0]  #或者元祖(1,2)里面值1
print("value===",value)  #输出value=== 1

删除字典中的某个值

dict1={
    "code":10010,
    "data":[
        ‘adsderasdasd‘,
        ‘1‘,
        11,
        True,
        {
            ‘data1‘:1,
            ‘value‘:‘2‘,
            ‘mege‘:(1,2),

        }
    ],
    ‘message‘:‘请输入正确的数值‘,
}
del dict1["code"]
print(dict1) #
del dict1["data"][4][‘mege‘]
print(dict1)
del dict1["data"][4][‘mege‘][1]
print(dict1) 

"""
执行结果
1、{‘data‘: [‘adsderasdasd‘, ‘1‘, 11, True, {‘data1‘: 1, ‘value‘: ‘2‘, ‘mege‘: (1, 2)}], ‘message‘: ‘请输入正确的数值‘}
2、{‘data‘: [‘adsderasdasd‘, ‘1‘, 11, True, {‘data1‘: 1, ‘value‘: ‘2‘}], ‘message‘: ‘请输入正确的数值‘}
3、则会报错  提示TypeError: ‘tuple‘ object doesn‘t support item deletion
"""

循环获取字典key、value的值

dict1={
    "code":10010,
    "data":[
        ‘adsderasdasd‘,
        ‘1‘,
        11,
        True,
        {
            ‘data1‘:1,
            ‘value‘:‘2‘,
            ‘mege‘:(1,2)

        }
    ],
    ‘message‘:‘请输入正确的数值‘
}

for key in dict1:
    print("key=",key,‘ ;‘,end=‘‘)  #循环输出的key的值
print(‘\n‘)

for key  in dict1.keys():
    print("key=",key,‘ ;‘,end=‘‘)  #循环输出的key的值
print(‘\n‘)

for value in dict1.values():  #循环输出value值
    print("value=",value,‘ ;‘,end=‘‘)

print(‘\n‘)
for key in dict1.keys():  #循环输出key 和对应value值
    print("%s:%s"%(key,dict1[key]),‘;‘,end=‘‘)

print(‘\n‘)
for key,value in dict1.items(): #循环输出key 和对应value值
    print("%s:%s"%(key,value),‘;‘,end=‘‘)

"""
执行结果:
key= code  ;key= data  ;key= message  ;
key= code  ;key= data  ;key= message  ;
value= 10010  ;value= [‘adsderasdasd‘, ‘1‘, 11, True, {‘data1‘: 1, ‘value‘: ‘2‘, ‘mege‘: (1, 2)}]  ;value= 请输入正确的数值  ;
code:10010 ;data:[‘adsderasdasd‘, ‘1‘, 11, True, {‘data1‘: 1, ‘value‘: ‘2‘, ‘mege‘: (1, 2)}] ;message:请输入正确的数值 ;
code:10010 ;data:[‘adsderasdasd‘, ‘1‘, 11, True, {‘data1‘: 1, ‘value‘: ‘2‘, ‘mege‘: (1, 2)}] ;message:请输入正确的数值 ;
"""

fromkeys()

dict.fromkeys(seq[, value])用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值

  • seq -- 字典键值列表。
  • value -- 可选参数, 设置键序列(seq)对应的值,默认为 None。
seq=(‘name‘, ‘age‘, ‘sex‘)

dict3=dict.fromkeys(seq)
print(dict3)

dict3=dict.fromkeys(seq,10)
print(dict3)

seq1=[‘name‘, ‘age‘, ‘sex‘]
dict3=dict.fromkeys(seq1)
print(dict3)

”“”
执行结果如下
{‘name‘: None, ‘age‘: None, ‘sex‘: None}
{‘name‘: 10, ‘age‘: 10, ‘sex‘: 10}
{‘name‘: None, ‘age‘: None, ‘sex‘: None}
"""

清空、拷贝、删除字典

dict1={‘a‘:1,‘b‘:2,‘c‘:3}
dict1.clear() #清空字典
print(dict1)  #输出{}

dict1={‘a‘:1,‘b‘:2,‘c‘:3}
dict2=dict1.copy() #浅拷贝 dict1
print(dict2) #输出dict2   {‘a‘: 1, ‘b‘: 2, ‘c‘: 3}

dict1={‘a‘:1,‘b‘:2,‘c‘:3}
del_value=dict1.pop(‘a‘) #移除key为a
print(dict1,del_value)  #输出  {‘b‘: 2, ‘c‘: 3}

# del_value=dict1.pop(‘d‘)  #移除不存在的key,
# print(dict1,del_value)  #报错 KeyError: ‘d‘

del_value=dict1.pop(‘d‘,999)  #移除不存在的key,则指定999赋值给del_value
print(dict1,del_value)  #输出 {‘b‘: 2, ‘c‘: 3} 999

dict1={‘a‘:1,‘b‘:2,‘c‘:3}
del_value=dict1.popitem()  #随机删除一对键值
print(dict1,del_value) #输出  {‘a‘: 1, ‘b‘: 2} (‘c‘, 3)

get()

根据key获取value值,key不存在时,则可以指定默认值(None)

dict1={‘a‘:1,‘b‘:2,‘c‘:3}
#no_key=dict[‘d‘]  #则会直接报错 TypeError: ‘type‘ object is not subscriptable

no_key=dict1.get(‘a‘)
print(‘no_key=‘,no_key)    #输出   no_key= 1

no_key=dict1.get(‘d‘)
print(‘no_key=‘,no_key)  #输出  no_key= None

no_key=dict1.get(‘e‘,‘1233‘)
print(‘no_key=‘,no_key)  #输出  no_key= 1233

setdefault()

dict.setdefault(key, default=None)和 get()方法 类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值

如果 key 在 字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。

dict1={‘a‘:1,‘b‘:2,‘c‘:3}
set_value=dict1.setdefault(‘a‘,‘aaa‘) #设置已存在的key,则不进行设置;同时获取的是当前key对应的值
print(dict1,set_value)

set_value=dict1.setdefault(‘d‘,‘ddd‘)#设置不存在的key,则进行设置;同时获取的是设置的值
print(dict1,set_value)

update()

字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里

dict1={‘a‘:1,‘b‘:2,‘c‘:3}
dict1.update({‘a‘:‘aaa‘,‘d‘:‘ddd‘}) #更新已存在的key,则更新对应的值 ;更新不存在的key,则添加到字典
print(dict1) #{‘a‘: ‘aaa‘, ‘b‘: 2, ‘c‘: 3, ‘d‘: ‘ddd‘}
# dict1={‘a‘:1,‘b‘:2,‘c‘:3}#dict1.update(‘a‘=‘aaa‘,‘d‘=‘ddd‘) # 报错 SyntaxError: keyword can‘t be an expression

原文地址:https://www.cnblogs.com/sugh/p/11671090.html

时间: 2024-10-29 11:32:55

Python3基础-基本数据类型之字典的相关文章

7-Python3从入门到实战—基础之数据类型(字典-Dictionary)

Python从入门到实战系列--目录 字典的定义 字典是另一种可变容器模型,且可存储任意类型对象:使用键-值(key-value)存储,具有极快的查找速度: 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 语法格式:{ key1 : value1, key2 : value2, key3 : value3 ...} users={' 张三 ' : 18 , ' 李四 ' : 19 , ' 王五 ' : 20 , ' 赵六 '

python基础数据类型之字典dict和集合set及其他(for,enumerate,range)。

2.6字典dict. 2.6.1 字典的初识 1. 列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢. 2. 列表只能按照顺序存储,数据与数据之间关联性不强. 所以针对于上的缺点,说咱们需要引入另一种容器型的数据类型,解决上面的问题,这就需要dict字典. 数据类型可以按照多种角度进行分类,就跟咱们人一样,人按照地域可以划分分为亚洲人,欧洲人,美洲人等,但是按照肤色又可以分为白种人,黄种人,黑种人,等等,数据类型可以按照不同的角度进行分类,先给大家按照可变与不可变的数据类型的

Python3基础数据类型

Python3基础数据类型 Python中变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在Python中,变量就是变量,他没有类型,我们所说的"类型"是变量所致的内存中对象类型. 等号(=)用来给变量赋值. 等号(=)运算符左边是一个变量名,右边是存储变量的值.列如: #!/usr/bin/python3 counter = 100 #整形变量 miles = 10000.0 #浮点型变量 name = "Jason" #字符串变量  

python3基础--列表和字典

列表 name = ['kzx', '666', 'none', 'truth'] # 截取 print(name[1: 3]) # 取下标1到3的元素(含下标1的元素,但是不包含3的)['666', 'none']print(name[1:-1]) # 也是取下标1到-1(即下标3)的元素(含下标1的元素,但是不包含-1的) ['666', 'none'] print(name[0:3]) # 取下标0到3的元素(含下标1的元素,但是不包含3的)['kzx', '666', 'none']pr

Py西游攻关之基础数据类型(四)-字典

Py西游攻关之基础数据类型 - Yuan先生 https://www.cnblogs.com/yuanchenqi/articles/5782764.html 七 Dictionary(字典) 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表意

python基础数据类型之字典+集合

一.数据类型之字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 总结:1.字

python基础--基本数据类型(Tuple(元组)--不可变数据)

python基础--基本数据类型(Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典)) Python3 中有六个标准的数据类型:Number(数字)String(字符串)List(列表)Tuple(元组)Sets(集合)Dictionary(字典) Python3 的六个标准数据类型中:不可变数据(四个):Number(数字).String(字符串).Tuple(元组).Sets(集合):可变数据(两个):List(

python基础--基本数据类型(List(列表)--可变数据)

python基础--基本数据类型(Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典)) Python3 中有六个标准的数据类型:Number(数字)String(字符串)List(列表)Tuple(元组)Sets(集合)Dictionary(字典) Python3 的六个标准数据类型中:不可变数据(四个):Number(数字).String(字符串).Tuple(元组).Sets(集合):可变数据(两个):List(

python基础之数据类型补充(基础五)

第七章 python基础之数据类型补充(基础五) 7.1 数据类型补充 字符串str,整型int,列表list,元组tuple,字典dict. 7.1.1 字符串str类型补充 s1 = str(123) #类型字符串 s.capitalize() 首字母大写 s = "alex wusir" s1 = s.capitalize() #首字母大写:Alex wusir print(s1) s.title() 每个单词首字母大写 s = "alex wusir" s1