cindyber 发表于 2025-1-7 10:58:28

关于字典的疑问(第四十七讲的作业)

字典是怎么引用字典中的元素的呢?为什么这道题当中字典需要加上.items()才可以?

FishC 发表于 2025-1-7 10:58:39

在 Python 中,字典(dict)是通过键(key)来引用对应的值(value)的。假设你有一个字典 `my_dict`,要访问某个键对应的值,你可以这样做:`my_dict`。

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

for key, value in my_dict.items():
    # 处理 key 和 value

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

cindyber 发表于 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>800),power.items()))

FishC 发表于 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 > 800, power.items()))

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2025-1-7 18:34:51

items()方法用于返回包含字典所有键值对的可迭代视图对象
你索引的是它
字典本身当然不行

cindyber 发表于 2025-1-7 21:30:03

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

是说直接用字典本身的话,它索引的值只有“键”,而不是键值对是么?

tommyyu 发表于 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')
>>>

某一个“天” 发表于 2025-1-7 23:20:31

cindyber 发表于 2025-1-7 21:30
是说直接用字典本身的话,它索引的值只有“键”,而不是键值对是么?

页: [1]
查看完整版本: 关于字典的疑问(第四十七讲的作业)