鱼C论坛

 找回密码
 立即注册
查看: 118|回复: 7

[已解决]关于字典的疑问(第四十七讲的作业)

[复制链接]
发表于 2025-1-7 10:58:28 | 显示全部楼层 |阅读模式

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

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

x
字典是怎么引用字典中的元素的呢?为什么这道题当中字典需要加上.items()才可以?
最佳答案
2025-1-7 18:34:51
items()方法用于返回包含字典所有键值对的可迭代视图对象
你索引的是它
字典本身当然不行
0.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-1-7 10:58:39 | 显示全部楼层
在 Python 中,字典(dict)是通过键(key)来引用对应的值(value)的。假设你有一个字典 `my_dict`,要访问某个键对应的值,你可以这样做:`my_dict[key]`。

至于为什么在一些情况下需要使用 `.items()`,是因为 `.items()` 方法用于返回包含字典所有键值对的可迭代视图对象。如果你需要遍历字典中的所有键值对,可以这样做:
for key, value in my_dict.items():
    # 处理 key 和 value

在某些需要处理所有键值对(key-value pair)的场合,比如遍历、解构等,就需要使用 `.items()`。具体到你的作业中,可能是需要进行这样的操作,所以要用上 `.items()`。如果只是简单地获取某个特定的值,则不需要使用 `.items()` 方法。

有什么具体的例子或者代码片段让你困惑吗?我可以帮你进一步解释。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-7 11:24:28 | 显示全部楼层
FishC 发表于 2025-1-7 10:58
在 Python 中,字典(dict)是通过键(key)来引用对应的值(value)的。假设你有一个字典 `my_dict`,要访 ...

请看我截图中的代码,是说单纯的字典不是一个可迭代对象么,在我的作业中我可以把power.items换成power么
鼠标滚轮缩放图片
0.请使用 lambda 表达式和 filter()函数配合,替换下面代码清单中的 for 循环。
power ={"吕布":999,"关羽":888,"刘备”:666,"张飞":980,"赵云":789,"不二如是":999}
# 请 lambda 表达式和 filter()函数配合,替换下面的代码greater =for k,vin power.items():
if v > 800:
greater.append((k,v))# 请lambda 表达式和 filter()函数配合,替换下面的代码
print(greater)[('吕布',999),('关羽',888),('张飞',900),('不二如是',999)]
代码清单:
’,greater =list(filter((lambda x:x[1]>800),power.items()))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-1-7 11:24:38 | 显示全部楼层
cindyber 发表于 2025-01-07 11:24
FishC 发表于 2025-1-7 10:58
在 Python 中,字典(d ...


在字典中,直接使用 `for` 循环遍历字典默认是遍历字典的键。如果你需要遍历字典的键和值,可以使用 `power.items()`,它返回一个包含字典中所有键值对的迭代器。

在你的例子中,由于需要获取键和值,所以使用 `power.items()` 是正确的。如果把 `power.items()` 换成 `power`,`lambda` 表达式中的 `x` 将代表字典的键,而不是键值对,因此无法直接比较值 `v`。

以下是使用 `lambda` 表达式和 `filter()` 函数完成这段逻辑的示例:
greater = list(filter(lambda x: x[1] > 800, power.items()))

这样做会筛选出字典中值大于 800 的键值对,并将其放入列表 `greater` 中。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-1-7 18:34:51 | 显示全部楼层    本楼为最佳答案   
items()方法用于返回包含字典所有键值对的可迭代视图对象
你索引的是它
字典本身当然不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-7 21:30:03 | 显示全部楼层
某一个“天” 发表于 2025-1-7 18:34
items()方法用于返回包含字典所有键值对的可迭代视图对象
你索引的是它
字典本身当然不行

是说直接用字典本身的话,它索引的值只有“键”,而不是键值对是么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-1-7 22:34:28 | 显示全部楼层
cindyber 发表于 2025-1-7 21:30
是说直接用字典本身的话,它索引的值只有“键”,而不是键值对是么?

是的。
>>> x = {1:'one', 2:'two', 3:'three'}
>>> for i in x: print(i)

1
2
3
>>> for i in x.items(): print(i)

(1, 'one')
(2, 'two')
(3, 'three')
>>> 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-1-7 23:20:31 | 显示全部楼层
cindyber 发表于 2025-1-7 21:30
是说直接用字典本身的话,它索引的值只有“键”,而不是键值对是么?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-24 01:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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