python字典的创建 Python 字典

Python 字典

字典

数据类型的分类

  • 可变(不可哈希)的:list dict set
  • 不可变(可哈希)的:str bool int tuple

字典:

  • {}括起来,以键值对形式存储的容器型数据类型:
  • 键必须唯一,且是不可变的数据类型:str bool int tuple
  • 值可以是任意数据类型,对象
  • 查询速度非常快,以空间换时间。

1.字典的创建方式

#方法一:
d1 = dict((('地址','上海'),("年龄",20),(1,2019))) #看清楚这里有几层括号 print(d1)
{'地址': '上海', '年龄': 20, 1: 2019}
#方法二:
d2 = dict(地址 = "上海",年龄 = 20) #注意:键不加双引号
print(d2)
{'地址': '上海', '年龄': 20}
d3 = dict({'地址':"上海","年龄":20,1:2019}) print(d3) d4 = {'地址':"上海","年龄":20,1:2019} print(d4)
{'地址': '上海', '年龄': 20, 1: 2019} {'地址': '上海', '年龄': 20, 1: 2019}

2.增

  • 直接增加 --有则改之,无则增加

  • setdefault --有则不变,无则增加

    #直接增加
    d = dict(name = "Faye",age = 20, hobby = "travel")
    d["sex"] = "女" print(d) d["name"] = "Python" #由于键是唯一的,如果有两个重复的键,后面的键会覆盖前面的 print(d)
    {'name': 'Faye', 'age': 20, 'hobby': 'travel', 'sex': '女'} {'name': 'Python', 'age': 20, 'hobby': 'travel', 'sex': '女'}
    #setdefault
    d = dict(name = "Faye",age = 20)
    d.setdefault("hobby")
    print(d)
    d.setdefault("sex","女") print(d) d.setdefault("age",99) #如果字典里有,则不变 print(d)

3.删

  • pop() --可设置第二个参数,那么无论字典中有无此键都不会报错(比较常用)

  • clear() --清空字典内容

  • del()

    d = dict(name = "Faye",age = 20, hobby = "travel")
    print(d.pop("name")) #删除并返回 print(d.pop("name","没有此键")) #如果列表里没有要删除的元素,则返回“没有此键”
    Faye
    没有此键

4.改

  • 直接改

5.查

  • 按键查 --没有键的话会报错
  • get() --没有键会返回None,或者设置自己的话
  • 三个特殊的:keys() 、values() 、items()
#直接查
d = {"name":"Faye","age":20,"hobby":["旅游","健身","看电影"]} print(d["hobby"]) #print(d["sex"]) #由于字典中没有这个键,所以会报错
['旅游', '健身', '看电影']
#get()方法查询
d = {"name":"Faye","age":20,"hobby":["旅游","健身","看电影"]} print(d.get("hobby")) print(d.get("sex")) #查不到默认返回None print(d.get("place","查不到哦~")) #第二个参数可以设置查不到返回的字符
['旅游', '健身', '看电影']
None
查不到哦~
#keys() --查询所有的键
d = {"name":"Faye","age":20,"hobby":["旅游","健身","看电影"]} a = d.keys() print(a) print(type(a)) #是一个特殊的类型 b = list(a) #但是可以转化成列表 print(b) print("------------------") for k in d.keys(): print(k)
dict_keys(['name', 'age', 'hobby'])
<class 'dict_keys'> ['name', 'age', 'hobby'] ------------------ name age hobby
#values() --查询所有的值
d = {"name":"Faye","age":20,"hobby":["旅游","健身","看电影"]} a = d.values() print(a) print(type(a)) #是一个特殊的类型 b = list(a) #但是可以转化成列表 print(b) print("------------------") for v in d.values(): print(v)
dict_values(['Faye', 20, ['旅游', '健身', '看电影']]) <class 'dict_values'> ['Faye', 20, ['旅游', '健身', '看电影']] ------------------ Faye 20 ['旅游', '健身', '看电影']
#items()
d = {"name":"Faye","age":20,"hobby":["旅游","健身","看电影"]} print(d.items()) print(list(d.items())) print("----------一般这么用----------") for i in d.items(): print(i) print("---------a是所有的键-----------") for a,b in d.items(): print(a) print("---------b是所有的值-----------") for a,b in d.items(): print(b) print("---------元祖的拆包-----------") for a,b in d.items(): print(a,b) 
dict_items([('name', 'Faye'), ('age', 20), ('hobby', ['旅游', '健身', '看电影'])]) [('name', 'Faye'), ('age', 20), ('hobby', ['旅游', '健身', '看电影'])] ----------一般这么用---------- ('name', 'Faye') ('age', 20) ('hobby', ['旅游', '健身', '看电影']) ---------a是所有的键----------- name age hobby ---------b是所有的值----------- Faye 20 ['旅游', '健身', '看电影'] ---------元祖的拆包----------- name Faye age 20 hobby ['旅游', '健身', '看电影']
练习题
d = {"name":"Faye","age":20,"place":[{"国家":"中国","城市":"上海"}],"description":{"性格":"内向","优点":"无","缺点":"记性差"}} #1.获取{"国家":"中国","城市":"上海"}这个字典 #2.获取所在国家 #3.获取缺点 
答案
d = {"name":"Faye","age":20,"place":[{"国家":"中国","城市":"上海"}],"description":{"性格":"内向","优点":"无","缺点":"记性差"}} #1.获取{"国家":"中国","城市":"上海"}这个字典 print(d["place"][0]) #2.获取所在国家 print(d["place"][0]["国家"]) #3.获取缺点 print(d["description"]["缺点"])
{'国家': '中国', '城市': '上海'}
中国
记性差

字典

数据类型的分类

  • 可变(不可哈希)的:list dict set
  • 不可变(可哈希)的:str bool int tuple

字典:

  • {}括起来,以键值对形式存储的容器型数据类型:
  • 键必须唯一,且是不可变的数据类型:str bool int tuple
  • 值可以是任意数据类型,对象
  • 查询速度非常快,以空间换时间。

1.字典的创建方式

#方法一:
d1 = dict((('地址','上海'),("年龄",20),(1,2019))) #看清楚这里有几层括号 print(d1)
{'地址': '上海', '年龄': 20, 1: 2019}
#方法二:
d2 = dict(地址 = "上海",年龄 = 20) #注意:键不加双引号
print(d2)
{'地址': '上海', '年龄': 20}
d3 = dict({'地址':"上海","年龄":20,1:2019}) print(d3) d4 = {'地址':"上海","年龄":20,1:2019} print(d4)
{'地址': '上海', '年龄': 20, 1: 2019} {'地址': '上海', '年龄': 20, 1: 2019}

2.增

  • 直接增加 --有则改之,无则增加

  • setdefault --有则不变,无则增加

    #直接增加
    d = dict(name = "Faye",age = 20, hobby = "travel")
    d["sex"] = "女" print(d) d["name"] = "Python" #由于键是唯一的,如果有两个重复的键,后面的键会覆盖前面的 print(d)
    {'name': 'Faye', 'age': 20, 'hobby': 'travel', 'sex': '女'} {'name': 'Python', 'age': 20, 'hobby': 'travel', 'sex': '女'}
    #setdefault
    d = dict(name = "Faye",age = 20)
    d.setdefault("hobby")
    print(d)
    d.setdefault("sex","女") print(d) d.setdefault("age",99) #如果字典里有,则不变 print(d)

3.删

  • pop() --可设置第二个参数,那么无论字典中有无此键都不会报错(比较常用)

  • clear() --清空字典内容

  • del()

    d = dict(name = "Faye",age = 20, hobby = "travel")
    print(d.pop("name")) #删除并返回 print(d.pop("name","没有此键")) #如果列表里没有要删除的元素,则返回“没有此键”
    Faye
    没有此键

4.改

  • 直接改

5.查

  • 按键查 --没有键的话会报错
  • get() --没有键会返回None,或者设置自己的话
  • 三个特殊的:keys() 、values() 、items()
#直接查
d = {"name":"Faye","age":20,"hobby":["旅游","健身","看电影"]} print(d["hobby"]) #print(d["sex"]) #由于字典中没有这个键,所以会报错
['旅游', '健身', '看电影']
#get()方法查询
d = {"name":"Faye","age":20,"hobby":["旅游","健身","看电影"]} print(d.get("hobby")) print(d.get("sex")) #查不到默认返回None print(d.get("place","查不到哦~")) #第二个参数可以设置查不到返回的字符
['旅游', '健身', '看电影']
None
查不到哦~
#keys() --查询所有的键
d = {"name":"Faye","age":20,"hobby":["旅游","健身","看电影"]} a = d.keys() print(a) print(type(a)) #是一个特殊的类型 b = list(a) #但是可以转化成列表 print(b) print("------------------") for k in d.keys(): print(k)
dict_keys(['name', 'age', 'hobby'])
<class 'dict_keys'> ['name', 'age', 'hobby'] ------------------ name age hobby
#values() --查询所有的值
d = {"name":"Faye","age":20,"hobby":["旅游","健身","看电影"]} a = d.values() print(a) print(type(a)) #是一个特殊的类型 b = list(a) #但是可以转化成列表 print(b) print("------------------") for v in d.values(): print(v)
dict_values(['Faye', 20, ['旅游', '健身', '看电影']]) <class 'dict_values'> ['Faye', 20, ['旅游', '健身', '看电影']] ------------------ Faye 20 ['旅游', '健身', '看电影']
#items()
d = {"name":"Faye","age":20,"hobby":["旅游","健身","看电影"]} print(d.items()) print(list(d.items())) print("----------一般这么用----------") for i in d.items(): print(i) print("---------a是所有的键-----------") for a,b in d.items(): print(a) print("---------b是所有的值-----------") for a,b in d.items(): print(b) print("---------元祖的拆包-----------") for a,b in d.items(): print(a,b) 
dict_items([('name', 'Faye'), ('age', 20), ('hobby', ['旅游', '健身', '看电影'])]) [('name', 'Faye'), ('age', 20), ('hobby', ['旅游', '健身', '看电影'])] ----------一般这么用---------- ('name', 'Faye') ('age', 20) ('hobby', ['旅游', '健身', '看电影']) ---------a是所有的键----------- name age hobby ---------b是所有的值----------- Faye 20 ['旅游', '健身', '看电影'] ---------元祖的拆包----------- name Faye age 20 hobby ['旅游', '健身', '看电影']
练习题
d = {"name":"Faye","age":20,"place":[{"国家":"中国","城市":"上海"}],"description":{"性格":"内向","优点":"无","缺点":"记性差"}} #1.获取{"国家":"中国","城市":"上海"}这个字典 #2.获取所在国家 #3.获取缺点 
答案
d = {"name":"Faye","age":20,"place":[{"国家":"中国","城市":"上海"}],"description":{"性格":"内向","优点":"无","缺点":"记性差"}} #1.获取{"国家":"中国","城市":"上海"}这个字典 print(d["place"][0]) #2.获取所在国家 print(d["place"][0]["国家"]) #3.获取缺点 print(d["description"]["缺点"])
{'国家': '中国', '城市': '上海'}
中国
记性差

猜你喜欢

转载自www.cnblogs.com/lankeyimeng/p/11993860.html