当前位置: 首页 > 面试题库 >

如何将数据列表映射到功能列表?

仲孙夕
2023-03-14
问题内容

我有以下Python代码:

data  = ['1', '4.6', 'txt']
funcs = [int, float, str]

如何使用相应索引中的数据作为函数的参数来调用每个函数?现在我在使用代码:

result = []
for i, func in enumerate(funcs):
    result.append(func(data[i]))

map(funcs,data) 不能与函数列表一起使用(是否有内置函数使函数更简单?


问题答案:

您可以使用zip*将许多序列组合在一起:

zip([a,b,c,...], [x,y,z,...]) == [(a,x), (b,y), (c,z), ...]

那么您可以迭代这个新序列,并使每个函数应用于相应的数据。因为您只想将它​​们收集到列表中,所以列表理解比for循环要好得多:

result = [f(x) for f, x in zip(funcs, data)]

注意:*itertools.izip如果您使用的是Python
2.x,并且列表很长,请使用。)



 类似资料:
  • ...但我得到: 我不知道如何应用这些信息。首先,我认为我需要为列表声明一些额外的映射(在同一个映射器类中),所以MapStruct知道如何像这样映射列表类型的每个字段: ...但我收到错误消息

  • 我从消防队拿到了我的文件。目前我在列表中有以下内容: 然后,在下面的方法中,我转换这个列表以放入一个具有所需格式的地图。

  • 错误: 我希望在列表中映射相同的字段名,而不需要另一个单独的方法,就像在另一个项目中使用旧的版本时一样。

  • 假设我有两个通用列表。我想将一个泛型值从列表映射到另一个泛型值。 因此列表<.NameAndSurnamedTo>需要映射到另一个列表<.NameAndSurnamedToTwo>。 做这样的手术最好的方法是什么?

  • 下面是我的DTO。 源DTO 目标DTO

  • 问题内容: [‘a’,’a’,’b’,’c’,’c’,’c’] 至 和 问题答案: x=[‘a’,’a’,’b’,’c’,’c’,’c’] >>> map(x.count,x) [2, 2, 1, 3, 3, 3] >>> dict(zip(x,map(x.count,x))) {‘a’: 2, ‘c’: 3, ‘b’: 1} >>>