python - 使用 python map 将元组中的类型 func 应用于字符串列表

标签 python list function dictionary

我有一个包含所有字符串的“标记”列表和一个形式为 (fieldname,fieldtype) 的元组列表 例如

ds = ['1','1','1','1','1']
fs = [('type',str),('value',int),('hidden',bool),('length',int),('pieces',str)

我想制作一个具有以下形式的字典 v

v = {'type':'1','value',1,'hidden':True,'length':1,'pieces','1')

我目前的效率非常低(我一次将元组中的类型 func 映射到列表中的元素)

v = {}
for j in xrange(len(fs)):
    v[fs[j]] = map(fs[j][1],[ds[j]])[0]

我怎样才能使它高效且易于阅读?我已经尝试过 lambda 等。如果这是一次性的事情,我会手动完成,但是有多个元组列表,其中一些有 50 个元素长。

最佳答案

您可以 zip()列表并将 fs 中定义的函数应用于适当的 ds 值:

>>> ds = ['1','1','1','1','1']
>>> fs = [('type',str),('value',int),('hidden',bool),('length',int),('pieces',str)]
>>> {key: f(value) for (key, f), value in zip(fs, ds)}
{'hidden': True, 'type': '1', 'length': 1, 'value': 1, 'pieces': '1'}

关于python - 使用 python map 将元组中的类型 func 应用于字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23134514/

相关文章:

python - 有没有办法在Python中创建无边框透明窗口?

python - flask 如何获取请求的 HTTP_ORIGIN

Python根据预定义的映射递归地转换dict

list - 如何从Dart Flutter中的键或键值对获取索引

Java函数将字符串数组转换为列表,然后返回旧字符串数组而不丢失更改

function - 如何转换函数类型?

c - 我的代码有什么问题,如果 b!=-1 它不返回值

python - Pyspark:无法将文件写入 Azure Blob 存储

python - pytest -> 如何在类下的测试方法中使用 fixture 返回值

javascript - ajax - 刷新 div 的 javascript 函数