Python语言--------------字典常用操作和方法(十五)

字典:

1、字典的概念

    使用 键-值(key - value)对存储,具有极快的查找速度

  • 字典是无序的:
  • key的特特性:

    • 1、key必须唯一
    • 2、key必须是不可变的对象
    • 3、字符串、整数等都是不可变的,可以做key(一般都是字符串作为key)
    • 4、list是可变的不可做为key

2、元素的访问

2.1、字典的创建

2.1.1、创建空字典

  • dict = {}

2.1.2、创建非空字典

  • {键:值} 例如:dict = {"张三": 60, "李四": 70, "王五": 80}

2.2、 获取:

  • 字典名[key]       也可也用来更改字典的值
dict1 = {"张三": 60, "李四": 70, "王五": 80}
print("=======原始字典=======")
print(dict1)
print("=======通过字典的建来访问字典中的值======")
print("张三的分数为:", dict1["张三"])

运行结果;
这里写图片描述

  • 字典名.get(key)      如果没有我们要找的值返回None
dict1 = {"张三": 60, "李四": 70, "王五": 80}
print("=======原始字典=======")
print(dict1)
print("=======通过字典的建来访问字典中的值======")
print("张三的分数为:", dict1["张三"])
print("王五的分数为:", dict1.get("王二"))
ret = dict1.get("赵六")
if ret == None:
    print("没有")
else:
    print("有")

运行结果:

这里写图片描述

2.3、 添加:

  • 字典名[key] = 值 即修改

    dict1 = {"张三": 60, "李四": 70, "王五": 80}
    print("=======原始字典=======")
    print(dict1)
    print("=======通过字典的建来访问字典中的值======")
    print("张三的分数为:", dict1["张三"])
    print("王五的分数为:", dict1.get("王二"))
    ret = dict1.get("赵六")
    if ret == None:
    print("没有")
    else:
    print("有")
    dict1["赵六"] = 100#添加
    dict1["张三"] = 90#修改
    print("===添加和修改后的字典===")
    print(dict1)

    运行结果:
    这里写图片描述

2.4、删除:

  • 字典名.pop(“要删除的key名字”)
dict1 = {"张三": 60, "李四": 70, "王五": 80}
print("=======原始字典=======")
print(dict1)
print("=======通过字典的建来访问字典中的值======")
print("张三的分数为:", dict1["张三"])
print("王五的分数为:", dict1.get("王二"))
ret = dict1.get("赵六")
if ret == None:
    print("没有")
else:
    print("有")
dict1["赵六"] = 100#添加
dict1["张三"] = 90#修改
print("===添加和修改后的字典===")
print(dict1)
print("======删除pop()======")
dict1.pop("张三")
print("删除后的字典的为:", dict1)

运行结果:
这里写图片描述

2.5、字典的两个常用方法

  • 1、 values();
           用法:字典名.values()
           返回值:以字典中的值为元素的列表
dict1 = {"张三": 60, "李四": 70, "王五": 80}
print("==================原始字典===================\n")
print(dict1)
print("============字典values()方法================\n")
print(dict1.values())
print("将字典中的值转换成列表:", list(dict1.values()), "\n")

运行结果;

这里写图片描述

  • 2、items()
           用法:字典名.items()
           返回值:以字典中的键值对组成的元组为元素的列表
dict1 = {"张三": 60, "李四": 70, "王五": 80}
print("==================原始字典===================\n")
print(dict1)
print("============字典values()方法================\n")
print(dict1.values())
print("将字典中的值转换成列表:", list(dict1.values()), "\n")
print("=======字典items()方法=======")
print(dict1.items())
print("将字典中的元素转换成列表", list(dict1.items()))
print("将字典中的元素转换成元组", tuple(dict1.items()))

运行结果:

这里写图片描述

2.5、字典的遍历

2.5.1、遍历字典中的键和值: for i in 字典名:

dict1 = {"张三": 60, "李四": 70, "王五": 80}
print("==================原始字典===================\n")
print(dict1)

print("=======遍历字典中的键======")
for i in dict1:
    print(i)

print("=========用键取值===========")
for i in dict1:
    print(i, dict1[i])

运行结果;
这里写图片描述

2.5.2、values()方法遍历字典中的值: for i in 字典名.values()

dict1 = {"张三": 60, "李四": 70, "王五": 80}
print("=================原始字典=================\n")
print(dict1)

print("==============遍历字典中的键===============")
for i in dict1:
    print(i)

print("=================用键取值=================")
for key in dict1:
    print(key, dict1[key])

print("=========遍历字典中的值values()实现========")
for value in dict1.values():
    print(value) 

运行结果:
这里写图片描述

2.5.3、items()遍历字典中的键和值 for k, v in 字典名.items()

dict1 = {"张三": 60, "李四": 70, "王五": 80}
print("=================原始字典=================\n")
print(dict1)

print("==============遍历字典中的键===============")
for i in dict1:
    print(i)

print("=================用键取值=================")
for key in dict1:
    print(key, dict1[key])

print("=========遍历字典中的值values()实现========")
for value in dict1.values():
    print(value)

print("=========遍历字典中的键和值items()实现==========")
for k, v in dict1.items():
    print(k, v)

运行结果:
这里写图片描述

2.5.4、enumerate()遍历字典中的值的下标和值 for k, v in enumerate(字典名) 此方法不常用因为字典中的值是无序的

dict1 = {"张三": 60, "李四": 70, "王五": 80}
print("=================原始字典=================\n")
print(dict1)

print("==============遍历字典中的键===============")
for i in dict1:
    print(i)

print("=================用键取值=================")
for key in dict1:
    print(key, dict1[key])

print("=========遍历字典中的值values()实现========")
for value in dict1.values():
    print(value)

print("=========遍历字典中的键和值items()实现==========")
for k, v in dict1.items():
    print(k, v)
print("========遍历字典中的值的下标和值===========")
for k2,v2 in enumerate(dict1):
    print(k2, v2)

运行结果:
这里写图片描述

3、练习

3.1、求一句话中单词出现的个数

word = input("请输入要查找的单词")
dict = {}#空字典存放键为单词,值为单词出现的次数
str2 = "wnike all day wnike all day wnike all day i do not know what i want to say"
list1 = str2.split(" ")#用空格把字符串分割返回一个列表
for value in list1:#遍历列表
    flag = dict.get(value)#空字典中是否有列表中的单词
    if flag == None:
        dict[value] = 1
    else:
        dict[value] += 1

print("%s 出现的次数是%d"%(word, dict.get(word)))#get()方法的好处是没有那个键时返回None,而不是程序抱错
print("每个单词出现的次数",dict)

运行结果;
这里写图片描述

猜你喜欢

转载自blog.csdn.net/boy_of_god/article/details/81807093