python dict字典基本知识

六月ゝ 毕业季﹏ 提交于 2020-01-01 17:31:19

字典dict

  • 是一种组合数据,没有顺序,以键值对形式出现

    创建空字典

    d = {}/d = dict()
    print(d)

    创建有值的字典,每一组数据用冒号隔开,每一对键值对用逗号隔开:3种方法

d = {"one":1, "two":2, "three":3}
print(d)

d = dict({"one": 1, "two": 2, "three": 3})
print(d)

d = dict(one=1, two=2, three=3)   #利用关键字参数,不需要引号
print(d)

字典的特征

  • 字典是无序序列类型,无分片和索引
  • 数据由键值对组成,kv对。key必须是可哈希的值(int,str,float,tuple可以,list,set,dict不行)/value可以是任何值

常见操作

 #访问数据
    d = {"one":1, "two":2, "three":3}
    print(d["one"])            #中括号内是键值
    
    #更改value值
    d["one"] = "eee"
    print(d)                   #{"one":"eee", "two":2, "three":3}
    
    #删除
    del d["one"]
    print(d)                   #{"two":2, "three":3}
    
    #成员检测:in,not in  检测的是键,不是值也不是键值对
    d = {"one":1, "two":2, "three":3}
    if "two" in d:
        print("key")
        
    #遍历:
    - 按key来使用for循环
    for k in dict:
        print(k, dict[k])
        
    for k in d.keys():
        print(k, dict[k])
        
    - 只访问值
    for v in dict.values():
        print(v)
        
    - 特殊用法
    for k,v in dict.items():
        print(k, '---', v)

字典生成式

d = {"one":1, "two":2, "three":3}
#常规字典生成式
dd = {k:v for k,v in d.items()}
print(dd)                       #{"one":1, "two":2, "three":3}

#加限制条件
dd = {k:v for k,v in d.items() if v % 2 == 0}
print(dd)                       #{"two":2}

字典相关函数

  • 通用函数:len,max,min,dict

  • str(dict) 返回字典的字符串格式

  • clear() 清空字典

    #items() 返回字典的键值对组成的元组格式

d = {"one":1, "two":2, "three":3}
i = d.items()
print(i)                         #dict_items([('one', 1), ('two', 2), ('three', 3)])
print(type(i))                   #<class 'dict_items'>

#keys() 返回键组成的结构
k = d.keys()
print(k)                         #dict_keys(['one', 'two', 'three'])
print(type(k))                   #<class 'dict_keys'>

#values() 
v = d.values()
print(v)                         #dict_keys([1, 2, 3])
print(type(v))                   #<class 'dict_values'>

get()

  • 根据指定键返回相应的值,好处是可以设置默认值(当你不知道key是否存在的时候)
d = {"one":1, "two":2, "three":3}
print(d.get("on33"))                #None
print(d.get("one", 100))            #1     (d中有‘one’,所以就返回‘one’的value)
print(d.get("on33", 100))           #100   (d中无‘on33’,所以就返回所给的默认值 100)
print(d['on33'])                    #报错:KeyError: 'on33'

fromkeys()

  • 使用指定的序列作为键,用一个值作为所有键的值
 l = ["eins", "zwei", "drei"
 	#fromkeys的调用主体就是dict
    d = dict.fromkeys(l, "hahaha")     
    print(d)                           
    #{'eins': 'hahaha', 'zwei': 'hahaha', 'drei': 'hahaha'}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!