IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python字典 -> 正文阅读

[Python知识库]Python字典

6.1一个简单的字典

alien_0 = {"color": "green", "point": 5}
print(alien_0["color"])
print(alien_0["point"])

6.2使用字典

字典是一系列键值对,每个键斗鱼一个值相关联,我们可以使用键来访问相关联的值。与键相关联的值可以使数,字符串,列表乃至字典。

在python中,字典用放在花括号{}中的一系列键值对表示:

alien_0 = {"color": "green", "point": 5}? ?#color是一个键,其后面对应数值

6.3访问字典中的值

alien_0 = {"color": "green", "point": 5}
print(alien_0["color"])

6.2.2添加键值对

字典是一种动态结构,可随时在其中添加键值对

alien_0 = {"color": "green", "point": 5}
print(alien_0["color"])
print(alien_0["point"])
alien_0["x_position"] = 0????????#设置外星人初始的x与y坐标
alien_0["y_position"] = 25
print(alien_0)

这个字典的最终结果新增了两个键值对

{'color': 'green', 'point': 5, 'x_position': 0, 'y_position': 25}

6.2.3先创建一个空字典

alien_1 = {}
alien_1["color"] = "green"
alien_1["points"] = 5
print(alien_1)

6.2.4修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键,以及与该键相关联的新值

alien_1["color"] = "yellow"
print(alien_1["color"])

#对以不同速度移动的外星人进行跟踪

alien_2 = {"x_position": 0, "y_position": 25, "speed": "medium"}
print(f"Original x_position:{alien_2['x_position']}")
# 向右移动外星人
# 根据当前速度确定将外星人向右移动多远
if alien_2["speed"] == "slow":
    x_increment = 1
elif alien_2["speed"] == "medium":
    x_increment = 2
else:
    x_increment = 3
alien_2["x_position"] = alien_2["x_position"] + x_increment
print(alien_2["x_position"])

6.2.5删除键值对

对于字典中不需要的信息,可使用del语句将相应的键值对彻底删除、使用del语句时,必须指定字典名和要删除的键。

alien_0 = {"color": "green", "points": 5}
print(alien_0)
del alien_0["points"]
print(alien_0)????????????????#删除的键值对会永远消失

6.2.6由类似对象组成的字典

也可以使用字典来存储众多对象的同一种信息,例如存储每个人最喜欢的编程语言

favorite_language ={
    "jen": "python",
    "sarah": "c",
    "edward": "ruby",
    "phil": "python"
}   #对于较长的字典,可通过这种方式进行格式设置

给定被调查者的名字,可使用这个字典轻松地获取她喜欢的语言:

language = favorite_language['sarah'].title()
print(language)

5.2.7使用get来访问值

如果指定的键不在字典内,那程序可能就会出错

可使用方法get()在指定的键不存在时返回一个默认值,从而避免这样的错误。

get() 该方法第一个参数用于指定键,第二个参数为指定的键不存在时要返回的值,是可选的

point_value = alien_0.get("point", "No point value assigned")
print(point_value)

#如果get()没有指定第二个参数,则会返回值None

6.3遍历字典

6.3.1遍历所有键值对

user_0 = {
    "username": "efermi",
    "first": "enrico",
    "last": "fermi",
}
for key,value in user_0.items():    #提取键值
    print(f"\nKey: {key}")
    print(f"Value:{value}")

6.3.2遍历字典中的所有键

user_0 = { 
????????"username": "efermi", 
????????"first": "enrico", 
????????"last": "fermi", 
}
for key in user_0.keys():           #提取键
    print(f"\nKey: {key}")

for key in user_0.keys(): #提取键 print(f"\nKey: {key}")

favorite_language ={
    "jen": "python",
    "sarah": "c",
    "edward": "ruby",
    "phil": "python",
}
friend = ["phil", "sarah"]
for name in favorite_language.keys():
    print(f"Hi,{name.title()}")
    if name in friend:
        language = favorite_language[name].title()
        print(f"{name.title()},I see you love {language}")

6.3.3按特定顺序遍历字典中的所有键

#使用sorted()方法对键值在遍历之前进行排序,排序是按顺序显示了所有被调查者的名字
favorite_language ={
    "jen": "python",
    "sarah": "c",
    "edward": "ruby",
    "phil": "python",
}
for name in sorted(favorite_language.keys()):
    print(f"{name.title()},thank you for taking the poll")

6.3.4遍历字典中的所有值

#使用.value()方法获取值结果
favorite_language ={
    "jen": "python",
    "sarah": "c",
    "edward": "ruby",
    "phil": "python",
}
for name in favorite_language.values():
    print(name.title())

按照上述做法可以提取字典中的值,但没有考虑数据重复的问题,当数据量比较庞大时,我们可以使用集合(set)来剔除重复项。集合set中的每个元素都是独一无二的

favorite_language ={
    "jen": "python",
    "sarah": "c",
    "edward": "ruby",
    "phil": "python",
}
for language in set(favorite_language.values()):
    print(language.title())

练习6-5

rivers = {
    "Yellow River": "China",
    "Xuanwu_lake": "nanjing",
    "nile": "egypt",
}
for name, value in rivers.items():
    print(f"The {name} runs through {value}\n")
for name in rivers.keys():
    print(name)
for value in rivers.values():
    print(value)

练习6-6

favorite_language = {
    "jen": "python",
    "sarah": "c",
    "edward": "ruby",
    "phil": "python",
}
visit = ["jen", "edward"]
for number in favorite_language.keys():
    if number in visit:
        print("Thanks")
    else:
        print("I invite you to accept our survey")

6.4嵌套

有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。

6.4.1字典列表

将一堆外星人字典放入列表中存储

alien_0 = {"color": "green", "points": 5}
alien_1 = {"color": "yellow", "points": 10}
alien_2 = {"color": "red", "points":15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
    print(alien)

示例:使用range()生成30个外星人

# 创建一个用于存储外星人的空列表
aliens = []
# 创建30个绿色的外星人
for alien_number in range(30):
    new_alien = {"color": "green", "points": "slow"}
    aliens.append(new_alien)
# 显示前五个外星人
for alien in aliens[:5]:
    print(alien)
print("...")
# 显示创建了多少外星人
print(len(aliens))
# 要将前三个外星人修改为黄色、速度为中等且值为10分
for alien in aliens[:3]:
    if alien["color"] == "green":
        alien["color"] = "yellow"
        alien["speed"] = "medium"
        alien["points"] = 10
    elif alien["color"] == "yellow":
        alien["color"] = "red"
        alien["speed"] = "fast"
        alien["points"] = "15"

6.4.2在字典中存储列表

在下面的示例中,存储了pizza的两方面信息:外皮类型以及配料列表。其中,配料列表是一个与键“toppings”相关联的值。
# 存储所点的pizza信息
pizza = {
    "crust": "thick",
    "toppings": ["mushrooms", "extra cheese"],
}
# 概述所点的pizza
print(f"You ordered a {pizza['crust']}-crust pizza"
    " with the following toppings: ")
for topping in pizza["toppings"]:
    print("\t"+topping)

对于之前说的用户喜欢的开发语言,现在每个被调查者所关联的可以不止是一种语言,而可能是一组语言。

favorite_language = {
    "jen": ["python", "ruby"],
    "sarah": ["c"],
    "edward": ["ruby", "go"],
    "phil": ["python", "haskell"],
}
for name, languages in favorite_language.items():
    print(f"{name.title()}'s favorite lauguages are:")
    for language in languages:
        print(language.title())

6.4.3在字典中存储字典

例如,每个网站用户都有一个独特的用户名,可在字典中将用户名作为键,将每个用户的信息作为字典并分别与键关联。

users ={
    "aeinstein":{
        "first": "albert",
        "last": "einstein",
        "location": "princeton",
    },
    "mcurie":{
        "first": "marie",
        "last": "curie",
        "location": "paris",
    },
}
for user_name, info in users.items():
    print(f"User_name: {user_name}")
    full_name = f"{info['first']} {info['last']}"
    loc = info["location"]
    print(full_name)
    print(loc)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 10:53:42  更:2021-10-22 10:55:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:48:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码