gpt4 book ai didi

python - 将此文件转换成字典

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:58 24 4
gpt4 key购买 nike

我在 Stackoverflow 上四处寻找,但未能找到此处讨论的内容。我有一个要转换成字典的列表。

3
banana
apple
orange
5.00E-2
1
7.02E-4
1.00E-4
4
5.13E-4
-5.76E-2
8
7.23E-8
-6.12E-9
4
5.02E

数字 3 是键的数量。接下来的 3 个字符串是键名。接下来的 3 个值是列表的第一个元素……等等。例如我会得到:

  mydict['banana']=[ 5.00E-2, 1.00E-4, -5.76E-2, -6.12E-9]
mydict['apple'] =[1, 4, 8, 4]
mydict['orange']=[ 7.02E-4, 5.13E-4, 7.23E-8, np.nan ]

请注意,最后一个元素不完整,只是“5.02E”,必须用 numpy.nan 替换。此外,每个列表中的元素数量必须相同,缺失值应为 numpy.nan。这是一个 python 2.7.x 问题。

所以我的问题是我正在寻找创建字典的最佳方法。怎么做?

最佳答案

num = mylist[0]
mydict = {}
for i in range(num):
mydict[mylist[i + 1]] = mylist[i + 1 + num::num]

或者如果您更喜欢单行,

mydict = {mylist[i + 1]:mylist[num + i + 1::num] for i in range(mylist[0])}

请注意,这不会用 numpy.nan 替换缺失的项目;那会是这样的

from itertools import izip_longest
import numpy as np

num = mylist[0]
labels = mylist[1:num + 1]
num_cols = (len(mylist) - 2) // num
cols = (mylist[1 + c*num::num] for c in range(1, num_cols + 2))
rows = izip_longest(*cols, fillvalue=np.nan)

mydict = dict(zip(labels, rows))

关于python - 将此文件转换成字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28383525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com