2017-09-21 39 views
-3

其實我已經字典從蟒蛇來了下面的列表是一個列表:切片扔使用Python中

{"Age": {"1": 72, "0": 86, "3": 56, "2": 56, "4": 55}, "Weight": {"1": 71, "0": 70, "3": 39, "2": 61, "4": 54}, "Animal": {"1": "Cat", "0": "Dog", "3": "Horse", "2": "Monkey", "4": "mice"}} 

我如何能切這個讓3名名單? 我想是這樣的:

Age = {"1": 72, "0": 86, "3": 56, "2": 56, "4": 55} 
Weight = {"1": 71, "0": 70, "3": 39, "2": 61, "4": 54} 
Animal = {"1": "Cat", "0": "Dog", "3": "Horse", "2": "Monkey", "4": "mice"} 

我知道我應該使用像這樣:

for k, v in Age.items(): 
print v 

但我怎麼能做到這一點的3名名單以及如何分配的方式我想: 重量= {...},動物= {...}

+1

哪個列表?該代碼使用字典。 – MSeifert

+0

這是一個字典而不是列表 – Abra001

+0

'年齡= {...'不是一個列表。你有一個嵌套的字典。請具體說明你想要的輸出。 – offeltoffel

回答

1

只是分配給每個需要的密鑰到您的變量:

combined = {"Age": {"1": 72, "0": 86, "3": 56, "2": 56, "4": 55}, "Weight": {"1": 71, "0": 70, "3": 39, "2": 61, "4": 54}, "Animal": {"1": "Cat", "0": "Dog", "3": "Horse", "2": "Monkey", "4": "mice"}} 

age = combined['Age'] 
weight = combined['Weight'] 
animal = combined['Animal'] 

print age 
print weight 
print animal 

給你:

{'1': 72, '0': 86, '3': 56, '2': 56, '4': 55} 
{'1': 71, '0': 70, '3': 39, '2': 61, '4': 54} 
{'1': 'Cat', '0': 'Dog', '3': 'Horse', '2': 'Monkey', '4': 'mice'} 
0

您正在使用錯誤的命名爲數據結構。 你所指的是一個字典而不是列表。但對於所提到的問題。下面是一個解決方案。

input_dict = {"Age": {"1": 72, "0": 86, "3": 56, "2": 56, "4": 55}, "Weight": {"1": 71, "0": 70, "3": 39, "2": 61, "4": 54}, "Animal": {"1": "Cat", "0": "Dog", "3": "Horse", "2": "Monkey", "4": "mice"}} 
for k,v in input_dict.items(): 
    vars()[k] = v 

您現在可以打印變量。

print Age 
{'1': 72, '0': 86, '3': 56, '2': 56, '4': 55} 
print Weight 
{'1': 71, '0': 70, '3': 39, '2': 61, '4': 54} 
print Animal 
{'1': 'Cat', '0': 'Dog', '3': 'Horse', '2': 'Monkey', '4': 'mice'} 

修改了答案,因爲每個建議從@Eric Duminil

0

你的數據格式是非常奇怪,使迭代和查找比必要的要困難得多。

以下是將其轉換爲更簡單的數據格式的方法。這仍然是一個詞典的詞典。它應該是比較容易做的迭代和查找,但:

weird_data = {"Age": {"1": 72, "0": 86, "3": 56, "2": 56, "4": 55}, "Weight": {"1": 71, "0": 70, "3": 39, "2": 61, "4": 54}, "Animal": {"1": "Cat", "0": "Dog", "3": "Horse", "2": "Monkey", "4": "mice"}} 

data = {name:{ 
     'id' : int(i), 
     'age': weird_data["Age"][i], 
     'weight': weird_data["Weight"][i] 
    } for i,name in weird_data["Animal"].items()} 

print(data) 
#{'Cat': {'age': 72, 'id': 1, 'weight': 71}, 
# 'Dog': {'age': 86, 'id': 0, 'weight': 70}, 
# 'Horse': {'age': 56, 'id': 3, 'weight': 39}, 
# 'Monkey': {'age': 56, 'id': 2, 'weight': 61}, 
# 'mice': {'age': 55, 'id': 4, 'weight': 54}} 

舉個例子:

>>> list(data) 
['Cat', 'Dog', 'Horse', 'Monkey', 'mice'] 
>>> [data[animal]['age'] for animal in data] 
[72, 86, 56, 56, 55] 
>>> data['Dog']['weight'] 
70 
0

比方說,在你的問題的字典由

dictionary = { 
     "Age": {"1": 72, "0": 86, "3": 56, "2": 56, "4": 55}, 
     "Weight": {"1": 71, "0": 70, "3": 39, "2": 61, "4": 54}, 
     "Animal": {"1": "Cat", "0": "Dog", "3": "Horse", "2": "Monkey","4":"mice"} 
} 

你可以表示創建如下功能: -

def split_dictionary(Age, Weight, Animal): 
    return Age, Weight, Animal 

然後簡單地調用這樣的功能: -

Age, Weight, Animal = split_dictionary(**dictionary)