Python:匹配列表中的元素

标签 python list dictionary

解析 csv 文件后,我从其中一行中获取此列表:

['', 'value1', '346.897', '', 'value2', '202.306', 'value3', '136.880', 'value4', '7.711', '']

因此,我需要得到:

{
    'value1': 346.897,
    'value2': 202.306,
    ...
}

有谁知道怎么让它变漂亮?不使用索引。

现在,我从列表中删除所有空字符串,然后采用 [0] 元素,例如 key[1],例如

Variables :value1 # ... - are dynamic

最佳答案

s = ['', 'value1', '346.897', '', 'value2', '202.306', 'value3', '136.880', 'value4', '7.711', '']
s = list(filter(None, s))        # fastest way to remove the empty strs        
zipped = zip(s[0::2], s[1::2])   # zip them   

print({k:v for k,v in dict(zipped).items()})

输出:

{'value1': '346.897', 'value2': '202.306', 'value3': '136.880', 'value4': '7.711'}

简化版:

s = list(filter(None, s))
print(dict(zip(s[0::2], s[1::2])))

输出:

{'value1': '346.897', 'value2': '202.306', 'value3': '136.880', 'value4': '7.711'}

pyFiddle

关于Python:匹配列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55630851/

相关文章:

c# - Dictionary<Key, Value> 上 .NET 二进制序列化的奇怪行为

python - 提取 float 的小数部分

python - 滚动条消失/刷新在 wx.python 中不起作用

python - 如何在软件中应用/模拟量化?

python - 查找严格位于 X 个列表中的 N 个中的元素

C++ Qt : Can't compile GoldenDict

python - 如何在 python 中格式化大于 999 的整数以看起来更具可读性?

r - 跨多个列表应用操作

python - 确保 python 列表的值范围

java - 如何根据 map 值对 map 进行排序