Skr-Eric的Python课堂(八)——Python的字典介绍

字典 dict

  什么是字典:

    1. 字典是一种可变的容器,可以存储任意类型的数据

    2. 字典中的每个数据都是用'键'(key)进行索引的,而不像序列可以用索引下标进行索引

    3. 字典中的数据没有先后顺序关系,字典的存储是无序的

    4. 字典中的数据以键-值对(key-value)对形式进行映射存储

    5. 字典的键不能重复,且只能用不可变类型作为字典的键

 

  字典的字面值表示方法:

    以{} 括起来,以冒号(:) 分隔键-值对,各键值对用逗号分隔开

 

  创建空字典:

d = {}  # {} 表达式用来创建一个空的字典

  

创建非空字典:

d = {'name': 'Li', 'age': 35}
d = {'a': 100}
d = {'a': tuple("ABC")}
d = {'abc': list("ABC")}
d = {'a': {'b':100, 'c':200}}
d = {True:'真值', False: '假值', None:'空', 100:'一百'}
d = {(1970, 1, 1): '计算机元年'}

 

字典的构造函数 dict

  dict()  创建一个空的字典,等同于{}

  dict(iterable)  用可迭代对象创建一个新的字典

  dict(**kwargs)  用关键字传参形式创建一个新的字典

 

示例:

d = dict()
d = dict([('name', 'tom'), ('age', 15)])
d = dict((['name', 'Li'], "AB"))
d = dict(name='eric', age=15)

 

字典的操作

  字典的键索引

    用[] 运算符可以获取字典内'键'对应的'值'

  语法:

    v = 字典[键]

  示例:

d = {'name': 'tom', 'age': 15}
print(d['name'], '今年', d['age'], '岁')

添加/修改字典的元素

  语法:

    字典[键] = 表达式

  示例:

d = {}
d['name'] = 'tom'  #创建新的键'name'同时关联值
d['age'] = 15  # 创建键并绑定15
d['age'] = 16  # 修改原来的键'age',重新绑定为16

  说明:

    键不存在,创建键,并绑定值

    键存在,修改键的绑定关系

  

删除字典元素 del语句

  del 字典[键]

  示例:

d = {1:'一', 'hello': 'world', False:'假值'}
del d['hello']

 

字典的 in / not in 运算符

  in用来判断一个键是否存在于字典中,如果存在返回 True,否则返回False

  not in 的返回结果与in 相反

 

示例:

d = {'name': '小张', 'age': 20}
'name' in d  # True
'age' not in d  # False
'小张' in d   # False  (只判断键,不判断值)
20 not in d  # True

 

字典的迭代访问

  字典是可迭代对象,字典只能对'键'进行访问

 

  示例:

d= {'aaa': 111, 'bbb': 222, 'ccc': 333}
for k in d:
    print(k)

 

可以用于字典的函数:

  len(x)  返回字典的键值对个数

  max(x)  返回字典键的最大值

  min(x)  返回字典键的最小值

  sum(x)  返回字典所有键的和

  any(x)  真值测试,只对键进行测试

  all(x)  真值测试,全部键为真值.结果才为True

示例:

d = {0: '零', 5:'伍', 8:'捌', 3:'叁'}
len(d)  # 4
max(d)  # 8
min(d)  # 0
sum(d)  # 16
any(d)  # True
all(d)  # False

字典的方法

  方法名       说明

  D.clear()   清空字典

  D.pop(key)  移除键,同时返回此键对应的值

  D.copy()  返回字典D的副本(浅拷贝)

  D.update(D2)  将字典D2合并到D中,如果键相同,则此键的值取D2的值为为新值

  D.get(key, default=None)  返回键key所对应的值,如果没有此键,则返回Default的值

  D.keys()  返回可迭代的dict_keys集合对象

  D.values() 返回可迭代的dict_value集合对象

  D.items()  返回可迭代的dict_item对象

 

示例:

d = {1: 'One', 2: "Two"}
d2 = {2: '二', 3: '三'}
d3 = d.copy()  # 复制
d3.pop(1)  # d3 = {2: "Two"}
d.update(d2)  # d = {1: 'One', 2: '二', 3: '三'}
d = {1: 'One', 2: '二', 3: '三'}
for k in d.keys():
    print(k)   # 1 2 3
for v in d.values():
    print(v)  # 'One' '二' '三'
for t in d.items():
    print(t)  # (1, 'One') (2, '二') (3, '三')

 

字典推导式

  是用可迭代对象生成字典的表达式

  语法:

    {键表达式 : 值表达式 for 变量 in 可迭代对象[if 真值表达式]}

    注: []表示其中的内容可省略

  示例:

# 生成一个字典,键为数字 1 ~ 9,值为键的平方
d = {x : x ** 2 for x in range(1, 10)}

字典推导式练习:

  1. 已知有如下字符串列表

    L = ['name', 'xiaozhang', 'abc']

  生成如下字典:

    d = {'name': 6, 'xiaozhang': 9, 'abc': 3}

    注: 字典的值为键的长度

  2. 已知有如下两个列表:

    nos = [1001, 1002, 1005, 1008]

    names = ['Tom', 'Jerry', 'Spike', 'Tyke']

    用上述两个列表生成如下字典:

    {1001: 'Tom', 1002: 'Jerry', 1005: 'Spike', 1008: 'Tyke'}

 

字典推导式的嵌套等同于列表推导式的嵌套

 

字典 VS 列表

  1. 都是可变对象

  2. 索引方式,列表用整数索引,字典用键索引

  3. 字典的插入,删除,修改的速度可能会快行列表(重要)

  4. 列表的存储是有序的,字典的存储是无序的

 

课后习题:

  1. 写一个程序模拟现实电子字典

     1) 输入一些单词和解释,将单词作为键,将解释作用值,将这些数据输入到字典中,当输入空单词时结束输入

     2) 输入要查找的词,给出该单词的解释.如果单词不存在则提示用户不存在该单词

  

  2. 学生信息管理项目

    输入任意个学生的姓名,年龄,成绩.每个学生的信息存入一个字典内,然后放入到列表中

       (每个学生需要手动输入)

    如:

      请输入姓名: name1

      请输入年龄: 20

      请输入成绩: 99

      请输入姓名: name2

      请输入年龄: 30

      请输入成绩: 88

      请输入姓名: <回车> 结束输入

    形成内部存储格式如下:

      [{'name':'name1', 'age':20, 'score':99}, {'name':name2, 'age':30, 'score':88}]

    1) 打印出存有学生信息的字典的列表

    2) 按表格形式打印出学生信息:

      +---------------+----------+----------+

      |     name      |   age    |   score  |

      +---------------+----------+----------+

      |    name1     |    20    |     99   |

      |     name2     |    30    |     88   |

      +---------------+----------+----------+

 

 

想要看更多的课程请微信关注SkrEric的编程课堂

### 回答1: 可以!一般来说,Python 写小游戏最简单的方式就是使用 Pygame 库,它可以让你创建出有趣的游戏程序。如果你想更深入地学习,可以参考 Python 官方文档中的教程,也可以看一些其他的书籍或教程。 ### 回答2: 好的,我来为您介绍一个简单的Python小游戏——猜数字游戏。 猜数字游戏是一个经典的游戏,在这个游戏中,计算机会随机生成一个数字,玩家需要不断猜测这个数字是多少,直到猜中为止。下面是一个Python实现的示例代码: ```python import random def guess_number(target): guess = None count = 0 while guess != target: guess = input("请输入一个数字:") guess = int(guess) count += 1 if guess < target: print("猜小了,请再试试!") elif guess > target: print("猜大了,请再试试!") else: print("恭喜你,猜对了!你总共猜了{}次。".format(count)) if __name__ == '__main__': target = random.randint(1, 100) guess_number(target) ``` 在这个代码中,我们首先使用`import random`引入random模块,以便随机生成待猜的数字。 在`guess_number`函数中,我们使用一个`while`循环,不断提示玩家输入数字,并将其转换为整数类型。然后与目标数字进行比较,根据猜测的结果提示玩家继续猜测。 当玩家猜中目标数字时,会输出恭喜信息以及玩家猜测的次数。 最后在`if __name__ == '__main__':`部分,我们使用`random.randint(1, 100)`生成1至100之间的随机整数作为目标数字,并调用`guess_number`函数开始游戏。 希望这个简单的示例能帮助您了解如何使用Python编写一个小游戏! ### 回答3: Python是一种广泛应用于软件开发和数据分析的编程语言,也可以用来编写小游戏。以下是一个简单的Python小游戏示例: ```python import random def guess_number(): target = random.randint(1, 100) guess = 0 num_attempts = 0 print("欢迎参加猜数字游戏!") while guess != target: guess = int(input("请输入一个猜测的数字:")) num_attempts += 1 if guess < target: print("猜测的数字太小了!") elif guess > target: print("猜测的数字太大了!") print(f"恭喜你猜对了!你一共猜了{num_attempts}次。") guess_number() ``` 这个小游戏是一个猜数字游戏,程序会随机生成一个1到100之间的数字,玩家需要通过输入数字进行猜测,直到猜对为止。程序会根据玩家的猜测提示猜测的数字是太大还是太小。最后,程序会告诉玩家猜对了,并显示玩家一共猜了多少次。 这只是一个简单示例,你可以根据自己的兴趣和创造力编写更复杂的小游戏。Python的易学易用使其成为编写小游戏的理想选择
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值