鱼C论坛

 找回密码
 立即注册
查看: 2812|回复: 12

[已解决]字典的循环遍历

[复制链接]
发表于 2020-2-15 11:58:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
xiaozhan_dict = {"name":"肖战",
                      "age":"28",
                     "phone":"19911005"}

for x in xiaozhan_dict:
    print("%s-%s"%(x,xiaozhan_dict[x]))


想问一下最后这行print里面的%(x,xiaozhan_dict[x])是什么意思啊?为什么要用这样的代码格式啊??
求解,小白困惑啊
最佳答案
2020-2-15 12:45:24
  1. for x in xiaozhan_dict:
复制代码

        是循环枚举字典键值的一种方法,字典 xiaozhan_dict 一共有 3 项,总共会循环 3 次。 在循环中,变量 x 将依次被赋值为 "name"、"age"、"phone" 3 个键(Key),所以,x 代表键(Key),xiaozhan_dict[x] 则是键 x (Key)所对应的值(Value)。
        print("%s-%s"%(x,xiaozhan_dict[x]))

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-15 12:43:01 | 显示全部楼层
xiaozhan_dict[x]这个是对xiaozhan_dict 这个字典本来的取值(取值使用[],x是key)
%(x,xiaozhan_dict[x])里面的 x 代表第一个%s ,xiaozhan_dict[x] 代表第二个%s
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-15 12:43:18 | 显示全部楼层
格式化操作, %s相当于两个占位符, 这里的 %s-%s 就相当于占了两个位置, 值由后面的 %(x,xiaozhan_dict[x]) 里的值来按顺序确定。
这么写的原因是在输出的 字符串语句 中若存在一个变化的字符/字符串,该如何print?
比如我要打印 “你还有 m 次机会抽奖”, 这个 m 是抽奖机会的次数,是在变化的(用一次少一次),并不是字符串 “m”, 所以我就需要用个东西去占个位置,“你还有%s次机会抽奖”,等到这个 m 的值确定了之后再去填充, “你还有%s次机会抽奖”%m。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-15 12:45:24 | 显示全部楼层    本楼为最佳答案   
  1. for x in xiaozhan_dict:
复制代码

        是循环枚举字典键值的一种方法,字典 xiaozhan_dict 一共有 3 项,总共会循环 3 次。 在循环中,变量 x 将依次被赋值为 "name"、"age"、"phone" 3 个键(Key),所以,x 代表键(Key),xiaozhan_dict[x] 则是键 x (Key)所对应的值(Value)。
        print("%s-%s"%(x,xiaozhan_dict[x]))

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-15 12:46:07 | 显示全部楼层
占位符我知道,刚刚是没想明白这个 %(x,xiaozhan_dict[x]) 是怎么来的。现在知道了,谢谢啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-15 12:47:19 | 显示全部楼层
jackz007 发表于 2020-2-15 12:45
是循环枚举字典键值的一种方法,字典 xiaozhan_dict 一共有 3 项,总共会循环 3 次。 在循环中, ...

谢谢,我懂了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-15 12:49:40 From FishC Mobile | 显示全部楼层
格式化字符串,%s 是占位符,第一个是 键,第二个是 值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-15 13:37:49 | 显示全部楼层
写成这样更简洁些。
  1. for x, y in xiaozhan_dict.items():
  2.     print("%s-%s"%(x, y)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-15 20:34:16 | 显示全部楼层
冬雪雪冬 发表于 2020-2-15 13:37
写成这样更简洁些。

我刚刚试了一下,这样也可以哎!!!可是我不懂 y 代表什么?x是是key,之前那个复杂的xiaozhan_dict[x]这个我至少还能懂他是 字典的值,可是现在用 y 也可以我就懵了
求解!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-15 20:38:21 | 显示全部楼层
DayToy 发表于 2020-2-15 20:34
我刚刚试了一下,这样也可以哎!!!可是我不懂 y 代表什么?x是是key,之前那个复杂的xiaozhan_dict[x] ...

遍历dict.items()就是得到一个元组,分别是字典的key和value
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-15 21:22:32 | 显示全部楼层
冬雪雪冬 发表于 2020-2-15 20:38
遍历dict.items()就是得到一个元组,分别是字典的key和value

意思是不管是x还是y,他们都只是遍历得到的字典的key和value,不论取什么名字都可以吗???
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-15 21:27:32 | 显示全部楼层
DayToy 发表于 2020-2-15 21:22
意思是不管是x还是y,他们都只是遍历得到的字典的key和value,不论取什么名字都可以吗???

是的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-15 21:34:03 | 显示全部楼层

懂了。真的非常感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-3 05:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表