python中2d_python中的2d字典

简短回答

这一行写的是你的旧数据:animal_dict.set_default(key, {})[breed] = list[i][2:]

在这里使用append而不是赋值。您需要首先创建一个空列表以附加到。在

长答案

创建一个索引然后用它来遍历列表并不是很像python,只要直接遍历列表的元素就行了!让我们调用列表animals和输出dict animal_dict:

^{pr2}$

这不是最巧妙的方法,但很简单。现在,我们需要确保字典里有这个物种。一个简单的方法是:if species not in poke_dict:

animal_dict[species] = {}

现在我们检查breed是否在这个字典中。如果没有,我们会做到:if breed not in animal_dict[species]:

animal_dict[species][breed] = []

最后,既然我们确定dict有正确的动物和品种键,我们可以添加新条目append:animal_dict[species][breed].append(stats)

结合一些测试值:animals = [

['cat', 'Siamese', '15 years', 'No', 'Yes', '165'],

['cat', 'Bombay', '15 years', 'No', 'Yes', '165'],

['dog', 'Labrador', '15 years', 'No', 'Yes', '165'],

['cat', 'Siamese', '15 years', 'No', 'Yes', '165'],

['dog', 'Poodle', '15 years', 'No', 'Yes', '165'],

]

animal_dict= {}

for animal in animals:

species = animal[0]

breed = animal[1]

stats = animal[2:]

if species not in animal_dict:

animal_dict[species] = {}

if breed not in animal_dict[species]:

animal_dict[species][breed] = []

animal_dict[species][breed].append(stats)

print animal_dict['cat']

建筑if species not in animal_dict:

animal_dict[species] = {}

if breed not in animal_dict[species]:

animal_dict[species][breed] = []

很笨拙,可以用setdefault替换,如下所示:animal_dict= {}

for animal in animals:

species, breed, stats = animal[0], animal[1], animal[2:]

animal_dict.setdefault(species, {}).setdefault(breed, []).append(stats)

print animal_dict['cat']

如果每个动物/品种组合只有一个实例:animal_dict = {}

for animal in animals:

species, breed, stats = animal[0], animal[1], animal[2:]

animal_dict.setdefault(species, {}).setdefault(breed, stats)

print animal_dict['cat']['Bombay']

输出:{'Siamese': [

['15 years', 'No', 'Yes', '165'],

['15 years', 'No', 'Yes', '165']

],

'Bombay': [

['15 years', 'No', 'Yes', '165']

]}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值