试图弄清楚该怎么做,还没有找到一个好的解决方案。我从XML响应中提取了这些数据。它在var标签中。现在我想做的就是从中创建一个字典。 domain.com应该与其后面列出的数字配对。
这是数据:
[
'cb131.domain1.com', '147827',
'cb143.domain2.com', '147825',
'cb175.domain1.com', '147454',
'cb190.domain.com', '146210',
'cb201.domain.com', '146208',
'cb219.domain.com', '146042',
'cb225.domain.com', '146282',
'cb900.domain.com', '148461',
'cb901.domain.com', '148493',
'cb902.domain.com', '148495',
'cb903.domain.com', '148497',
'cb904.domain.com','148499',
'cb905.domain.com', '148501',
'cb906.domain.com', '148503',
'cb907.domain.com', '148505',
'cb908.domain.com', '148507',
'cb909.domain.com', '148509'
]
例如,cb131.domain1.com应该与147827配对,cb143.domain2.com应该与147825配对,依此类推。
在如何执行此操作的快速解决方案上画空白。希望有人可以提供帮助。
谢谢!
编辑后,我在下面选择了答案:
我选择了这个答案,还帮助其他人添加了一种打印结果的好方法(数据是我获得的字符串):
import ast
i = iter(ast.literal_eval(data))
dic = dict(zip(i, i))
for key , value in dic.items():
print(key, " :: ", value)
答案 0 :(得分:1)
这应该做到。假设列表已保存到变量l
:
keys = l[::2]
vals = l[1::2]
dic = dict(zip(keys, vals))
答案 1 :(得分:0)
我还不知道Python是否可以编写代码段,但是:
此答案对您有帮助吗?
这是Python-快速Google搜索:
dictionary = { }
for idx in range(0, len(data), 2)
dictionary[data[idx]] = data[idx + 1]
答案 2 :(得分:0)
假设您在名为data
的python数组中拥有以上内容,则可以执行以下操作:
new_data = []
for i in range(0, len(data), 2):
new_data.append((data[i], data[i+1]))
现在new_data将是一个元组列表。如果需要,您当然可以创建一个更好的数据结构来容纳这些对。
答案 3 :(得分:0)
您可以使用ast.literal_eval
从输入文本zip
解析其自身,然后将生成的元组序列传递给dict构造函数之后,使用列表中的列表创建迭代器:>
import ast
i = iter(ast.literal_eval(data))
dict(zip(i, i))