与字典和列表转换有关的问题

时间:2018-09-26 18:01:02

标签: python

我有嵌套列表。现在,我想将其转换为字典。 在我的案例中,嵌套列表始终只包含两个项目。

list1 = [['a','b'],['c','d']]
list2=[]
for i in list1:
    list2.append({'name':i[0],'value':i[1]}) //it work correct but i want to optimize that code.

o/p of above code(this i want): [{ 'name': 'a','value': 'b'}, {'name': 'c', 'value': 'd'}]

任何人都可以告诉。如何优化上面的代码。 预先感谢。

2 个答案:

答案 0 :(得分:0)

在我看来,有这样一个字典列表是一个非常奇怪的数据结构,但是您可以像这样在性能方面有效地做到这一点:

library(BatchGetSymbols)
library(TTR)

# your code ...
rsi <- lapply(mylist, function(x) RSI(x$price.close))

head(rsi$ABT, 20)
 [1]       NA       NA       NA       NA       NA       NA       NA       NA       NA       NA       NA       NA       NA       NA 63.69235
[16] 66.10698 69.69120 70.76959 72.24900 69.41154

答案 1 :(得分:0)

使用itertools.cycle和字典+列表理解:

from itertools import cycle

list1 = [['a','b'],['c','d']]
k = cycle(['name', 'value'])
print([{next(k): v for v in x} for x in list1])

# [{'name': 'a', 'value': 'b'}, {'name': 'c', 'value': 'd'}]

在这里,cycle创建了一个无限迭代器,以循环方式获取项-name, value, name, value, name,...。此迭代器上的next()在每次迭代中都会带走价值。