【问题标题】:Passing dictionary key and values to a function将字典键和值传递给函数
【发布时间】:2015-07-10 15:43:24
【问题描述】:

我有一个字典列表。每个字典都有一组数字键和一个与之对应的值列表,总共三个对称数据结构:

   dict_list = {key1: [1,2,3],
                key2: [4,5,6],
                ...}

我正在使用

    def function(dict_list):
     converted_dict_list = []
     for i in range(0,4):
        new_dict = {k:map(external_function,value) for k, value in dict_list[i].iteritems()}
     return converted_dict_list

这会遍历每个字典中每个键的每个列表。将它们发送到external_function,以便在新的字典列表中进行处理和更新。

但我想将值 每个值的键(作为浮点数)发送到外部函数;从外部函数反弹回来的结果将仅用于更新值(与给出的示例相同)。它们的键是字符串,但确实包含现在需要的浮点或整数值。

【问题讨论】:

  • 那么...问题是什么?
  • 您在寻找float 内置函数吗?
  • 问题是 map 只需要一个函数参数。但是我需要实现上面的代码来发送两个。额外的参数是字典的键,例如'5.5'......所以在我给出的结构中,'key1'和说'1'都需要同时进入外部函数。
  • 您是否考虑过使用functools.partiallambda 表达式来创建可以与map 一起使用的东西?或者,切换到列表理解可能会更好:{k: [external_function(float(k), val) for val in value] for...}.
  • map 可以在函数参数之后接受任意数量的迭代。因此,该函数需要接受与可迭代数量一样多的参数。因此,您需要一种将包含浮点数的字符串转换为与值列表具有相同大小的可迭代对象的方法。是这样吗?

标签: python list dictionary


【解决方案1】:

如果您尝试从字典中提取键和值,您可以使用

for key, value in dict.iteritems():

然后只需在字符串中输入jungle the float。

new_float = float(key)

【讨论】:

    猜你喜欢
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 2022-08-09
    • 2012-12-10
    • 2010-09-24
    相关资源
    最近更新 更多