1

3つの方法で分割してから、辞書のリストに分割する必要がある文字列があります。

given_string = 'name:mickey,age:58|name:minnie,age:47,weight:60' 

data = []

data = [value.split(',') for value in given_string.split('|')]

data = [['name:mickey', 'age:58'], ['name:minnie', 'age:47', 'weight:60']]

ここで、これをもう一度':'で分割し、データに2つの辞書のリストを含めて、say data[1][age]と入力すると47になるようにします。

基本的に、私はそれが機能するためにこれが欲しいと思います:

data = [{'name': 'mickey', 'age': '58}, {'name': 'minnie', 'age': '47', 'weight': '60'}] 

最終的には、データは辞書のリストになるはずですが、文字列を2つのリストに分割すると、「:」で分割してからサブリストを辞書に変換することに混乱します。

4

3 に答える 3

4

あなたは簡単なリスト内包で行うことができます

>>> [dict(x.split(':') for x in parts.split(',')) 
     for parts in given_string.split('|')]
[{'age': '58', 'name': 'mickey'}, {'age': '47', 'name': 'minnie', 'weight': '60'}]
于 2012-08-15T03:28:33.827 に答える
3

ネストを難しくします。

>>> [ dict(y.split(':') for y in x.split(',')) for x in 'name:mickey,age:58|name:minnie,age:47,weight:60'.split('|')]
[{'age': '58', 'name': 'mickey'}, {'age': '47', 'name': 'minnie', 'weight': '60'}]
于 2012-08-15T03:28:16.210 に答える
0
 given_string = 'name:mickey,age:58|name:minnie,age:47,weight:60' 
 data = [value.split(',') for value in given_string.split('|')]

 y=[] # make a empty list
 for i in data:
     z={}
     for v in range(len(i)):
         b=i[v].split(":")      #  ['name", "mickey', 'age","58"]
         z[b[0]]=b[1]           # adding keys and values in dictionary z  
     y.append(z)                # adding dictionary to the list
于 2012-10-27T11:44:03.670 に答える