gpt4 book ai didi

python - 使用 lambda、map 和 list 时,如果 Boolean 为 True,如何返回以下位置的列表?

转载 作者:太空宇宙 更新时间:2023-11-03 20:46:35 26 4
gpt4 key购买 nike

我有一个名字列表,每个名字后面都有一个数字。像这样

l = ["Bob", 4, "Rob", 5, "Sam", 6, "Bob", 5]

我想仅使用 lambda、map、列表或过滤器返回与给定名称相对应的数字列表。

例如,如果我将 Bob 的名字与 list = ["Bob",4,"Rob",5,"Sam",6,"Bob",5] 一起使用,我的输出将是

[4,5]

我想我理解了 lambda 的大部分内容,我只是无法让它返回我想要的内容。

mx = list(map(lambda x: l[x+1] if x == name, l))

我收到此错误。 Syntax Error: invalid syntax: <string>, line 14, pos 29

最佳答案

您可以遍历偶数索引处的值,并在下一个索引处与名称匹配时输出该值:

result = [l[i+1] for i in range(0,len(l),2) if l[i] == "Bob"]

如果允许使用枚举,这可能会更简洁(假设奇数索引都不包含匹配的字符串):

result = [l[i+1] for i,n in enumerate(l) if n == 'Bob' ]

或使用 zip()

result = [v for n,v in zip(l,l[1:]) if n == 'Bob']

关于python - 使用 lambda、map 和 list 时,如果 Boolean 为 True,如何返回以下位置的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56548461/

26 4 0
文章推荐: c# - 如何访问来自 ASP.net 中 GET 方法的 url 中的变量?
文章推荐: html - 更少的样式 : Comma-separated div's nested within media query not applying
文章推荐: c# - 有没有一种使用 Console.ReadKey 在值之间进行选择而无需在类型之间进行大量转换的好方法?
文章推荐: html - 强制将 float