输入:
l1="model,color,brand,value"
l2="2009,red,car,100000"
输出:
l3="model:2009,color:red,brand:car,value=100000"
以上是可能的吗?
答案 0 :(得分:6)
您可以使l3
字典存储键值对:
>>> l3 = dict( zip(l1.split(','), l2.split(',')) )
>>> l3
{'brand': 'car', 'color': 'red', 'model': '2009', 'value': '100000'}
但如果您只需要一个字符串,则可以使用join
:
>>> l3 = ','.join([ '%s:%s' % (k, v) for k, v in zip(l1.split(','), l2.split(',')) ])
>>> l3
'model:2009,color:red,brand:car,value:100000'
请注意,l1
和l2
不是list
,而是字符串。因此,我们可以通过分割逗号将它们转换为列表,例如l1.split(',')
。
答案 1 :(得分:4)
这些不是列表,而是字符串。您需要将它们转换为列表和zip:
>>> l1.split(',') # split string by comma
['model', 'color', 'brand', 'value']
>>> l3 = zip(l1.split(','), l2.split(','))
>>> l3 # zipped list
[('model', '2009'), ('color', 'red'), ('brand', 'car'), ('value', '100000')]
>>> ','.join('%s:%s' % l for l in l3) # convert back to string
'model:2009,color:red,brand:car,value:100000'
此外,您可能会发现collections.namedtuple
有用:
>>> from collections import namedtuple
>>> NT = namedtuple('data', tuple(l1.split(',')))
>>> row = NT(*l2.split(','))
>>> row
data(model='2009', color='red', brand='car', value='100000')
>>> row.model
'2009'
答案 2 :(得分:3)
>>> l1 = "model,color,brand,value"
>>> l2 = "2009,red,car,100000"
>>> l3 = ",".join(a+":"+b for a,b in zip(l1.split(","),l2.split(",")))
>>> l3
'model:2009,color:red,brand:car,value:100000'
答案 3 :(得分:2)
l3 = ",".join(":".join(pair) for pair in zip(l1.split(","), l2.split(","))
答案 4 :(得分:1)
由于您要求提供键值对列表,并且接受的答案不是您在帖子/问题中显示的答案,因此这里是另一种解释(词典列表)。
代码:
keys = 'model,color,brand,value'
values = '2009,red,car,10000'
zcar = [ {key: val} for (key, val) in zip(keys.split(','),values.split(','))]
答案:
[{'model': '2009'}, {'colour': 'red'}, {'brand': 'car'}, {'value': '10000'}]
感谢任何积极的批评。