鱼C论坛

 找回密码
 立即注册
查看: 250|回复: 4

[已解决]B站36节map函数问题

[复制链接]
发表于 2024-7-29 09:25:30 | 显示全部楼层 |阅读模式

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

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

x
在B站学到了第36讲。有没有大佬能把下面的代码给帮忙拆解/详解一下,直接懵了,谢谢!

代码如下:
list(map(max, [1, 3, 5], [2, 2, 2], [0, 3, 9, 8]))
[2, 3, 9]
最佳答案
2024-7-29 09:37:24
William01 发表于 2024-07-29 09:37
好的,谢谢小助理,这个问题我理解了。但是我又有了另 ...


哈哈,好问题!让我来给你解释一下。

首先,这个`(, , )`看起来像是三个逗号对吧?实际上,在Python中这种表示法是个“空元组”或者说是一个不完整的参数列表。它并不是代表三行,而是指位置上的参数是需要被填写的。

### 为什么会出现这种情况呢?

在这个例子中,`list(map(max, , , ))`应该是有人在示例代码中故意留空,可能是为了让你去理解`map`函数的用法和参数的数量。这通常在教学过程中是常见的做法,用于引导学生思考。

### 用法示例:

如果我们填满这些位置,假设你有两个列表,比如 `list1 = [1, 5, 3]` 和 `list2 = [4, 2, 6]`,完整的代码看起来像这样:
list(map(max, list1, list2))

这样,`max`函数会比较 `list1` 和 `list2` 中相同位置的元素,然后返回一个新的列表 `[4, 5, 6]`,因为它比较的是 `(1, 4), (5, 2), (3, 6)` 这三个对。

### 总结一下:

- `(, , )`不是三行,而确实是三个空的参数位置。
- 这是一种让你填充参数的方式,让你理解如何使用`map()`与`max()`结合。

希望这个解释能让你更加清楚!如果还有其他问题,记得随时问我哦!

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

使用道具 举报

发表于 2024-7-29 09:25:40 | 显示全部楼层
哇,看来你在B站上遇到了一个让人“懵圈”的map问题!别担心,让我来给你拆解一下这段看似复杂的代码。

首先,我们需要了解`map`函数和`max`函数的基本用法。

### `map`函数
`map()`是一个高阶函数,它的作用是将指定的函数应用于可迭代对象(如列表、元组等)中的每一个元素。其基本语法是:
map(function, iterable, ...)
这里的`function`是要应用的函数,`iterable`是我们要处理的列表或其他可迭代的对象。

### `max`函数
`max()`函数是用来返回一组数中的最大值的,可以接受两个或多个参数。如果传入的是可迭代对象,它会返回其中的最大项。

### 拆解代码 `list(map(max, , , ))`
现在,我们来看这段代码:
list(map(max, , , ))
这段代码有点不完整,尤其是逗号后面的部分,但是我能够告诉你它大概想表达的意思。

- **首先**,`map(max, , , )`的意思是:对传递给`max`函数的多个可迭代对象中的每个位置应用`max`函数。
- 由于你的代码中没有填入具体的可迭代对象,我们可以假设它应该是像这样:
list(map(max, [1, 2, 3], [3, 2, 1]))
在这个例子中,`map`会逐元素比较两个列表中相同位置的元素,并返回一个新的列表,其中每个元素都是两个列表中的最大值。

### 具体示例
以之前的例子为参考:
result = list(map(max, [1, 4, 3], [3, 2, 5]))
print(result)  # 输出:[3, 4, 5]
这里,`max`函数会比较第一个列表和第二个列表相同位置的元素,生成的是一个新列表,里面保存的是最大值 `[3, 4, 5]`。

### 总结
所以,如果你看到`list(map(max, ...))`这段代码,记得后面应该补充一些可迭代对象,它们将被`max`函数逐个比较哦!希望这能帮助你从“懵圈”中走出来,继续愉快地学习Python!

如果还有其他问题,随时问我哦!

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

使用道具 举报

 楼主| 发表于 2024-7-29 09:37:19 | 显示全部楼层
FishC 发表于 2024-7-29 09:25
哇,看来你在B站上遇到了一个让人“懵圈”的map问题!别担心,让我来给你拆解一下这段看似复杂的代码。

...

好的,谢谢小助理,这个问题我理解了。但是我又有了另一个问题 ([1, 3, 5], [2, 2, 2], [0, 3, 9, 8])明明是一行,为什么会被认为是三行呢?谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-29 09:37:24 | 显示全部楼层    本楼为最佳答案   
William01 发表于 2024-07-29 09:37
好的,谢谢小助理,这个问题我理解了。但是我又有了另 ...


哈哈,好问题!让我来给你解释一下。

首先,这个`(, , )`看起来像是三个逗号对吧?实际上,在Python中这种表示法是个“空元组”或者说是一个不完整的参数列表。它并不是代表三行,而是指位置上的参数是需要被填写的。

### 为什么会出现这种情况呢?

在这个例子中,`list(map(max, , , ))`应该是有人在示例代码中故意留空,可能是为了让你去理解`map`函数的用法和参数的数量。这通常在教学过程中是常见的做法,用于引导学生思考。

### 用法示例:

如果我们填满这些位置,假设你有两个列表,比如 `list1 = [1, 5, 3]` 和 `list2 = [4, 2, 6]`,完整的代码看起来像这样:
list(map(max, list1, list2))

这样,`max`函数会比较 `list1` 和 `list2` 中相同位置的元素,然后返回一个新的列表 `[4, 5, 6]`,因为它比较的是 `(1, 4), (5, 2), (3, 6)` 这三个对。

### 总结一下:

- `(, , )`不是三行,而确实是三个空的参数位置。
- 这是一种让你填充参数的方式,让你理解如何使用`map()`与`max()`结合。

希望这个解释能让你更加清楚!如果还有其他问题,记得随时问我哦!

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

使用道具 举报

 楼主| 发表于 2024-7-29 09:41:36 | 显示全部楼层
FishC 发表于 2024-7-29 09:37
哈哈,好问题!让我来给你解释一下。

首先,这个`(, , )`看起来像是三个逗号对吧?实际上,在Python ...

好的,非常感谢,我明白了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 16:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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