2017-08-28 18 views
-7

私はリストのリストを取って辞書に変換しようとしています。私は3かpython dictionary - dictへのリストの一覧

New_dicts['doug']['rating3'] 

を得るとき

New_dicts['sam']['rating1'] 

よう

yearend = [['empl','rating1','rating2','rating3'],['mike','4','4','5'], 
['sam','3','2','5'],['doug','5','5','5']]  
extract the employee names 
employee = [item[0] for item in yearend] #select 1st item from each list 
employee.pop(0) # pop out the empl 
print(employee) 
### output################################################## 
##['mike', 'sam', 'doug']################################### 
###Output################################################### 
###extract the various rating types 
yearend1 = yearend [:] # make a copy 
rating = yearend1.pop(0) # Pop out the 1st list 
rating.pop(0) 
print(rating) 
### output################################################## 
##['rating1', 'rating2', 'rating3']######################### 
###Output################################################### 
# pick employee and rating and convert rating to numeric 
empl_rating = {t[0]:t[1:] for t in yearend1} 
for key,value in empl_rating.items(): 
value = list(map(int, value)) 
empl_rating[key] = value 
print(empl_rating) 
### output################################################## 
##{'mike': [4, 4, 5], 'sam': [3, 2, 5], 'doug': [5, 5, 5]}## 
###Output################################################### 

以下のコードを参照してください私はdictの(New_dicts)の中に一緒に入れしようとしている以上、今はIAMのようなデータを抽出しました私は5を得る。私が苦労しているのは、どのようにこのデータをまとめるのか? {item[0] : todict(item[1:]) for item in your_list}

ところで、このゾルはあなたがインデックスにそれを望んでいたかオフで基づいています:あなたの問題を解決するために

+2

これは、コード・書き込みサービスではありません。 [ask]を見てください –

答えて

0
def todict(ratings) : 
    a ={} 
    a["rating1"] = ratings [0] 
    a["rating2"] = ratings [1] 
    a["rating3"] = ratings [2] 
    return a 

一つの方法は、ただやるの見出しと最初の行を取り除くことです。そこにはより一般的なソルがあると確信しています。

あなたはdict comprehensionを使用することができますあなたが望むことは、本質的にちょうどネストされた辞書である

0

ので:

New_dicts = {line[0]: {yearend[0][i + 1]: int(rating) for i, rating in enumerate(line[1:])} for line in yearend[1:]} 
関連する問題