-6

入力:

l1="model,color,brand,value"
l2="2009,red,car,100000"

出力:

l3="model:2009,color:red,brand:car,value=100000"

上記のことは可能ですか?

4

5 に答える 5

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'

l1andl2lists ではなく文字列であることに注意してください。したがって、コンマで分割することにより、それらをリストに変換できますl1.split(',')

于 2013-11-05T17:43:49.080 に答える
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'
于 2013-11-05T17:43:50.893 に答える
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'
于 2013-11-05T17:44:08.877 に答える
2
l3 = ",".join(":".join(pair) for pair in zip(l1.split(","), l2.split(","))
于 2013-11-05T17:44:49.960 に答える
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'}]

肯定的な批判はありがたく受け取った。

于 2013-11-05T20:02:07.210 に答える