python中字典的定义以及如何创建字典_在python中创建字典的字典

问题

我在for循环的每次迭代中都有单独的字典,但是当第二次迭代运行时,与其将第二个字典添加到第一个字典中,而是将第二个字典替换为第一个字典.

class Nation:

def __init__(self, short_name, long_name, iso_code, iso_short, iso_long, capital):

self.short_name = short_name

self.long_name = long_name

self.iso_code = iso_code

self.iso_short = iso_short

self.iso_long = iso_long

self.capital = capital

def to_dictionaries(z):

a = {}

sD = {}

for i in range(len(z)):

sD["long_name"] = z[i].long_name

sD["iso_code"] = z[i].iso_code

sD["iso_short"] = z[i].iso_short

sD["iso_long"] = z[i].iso_long

sD["capital"] = z[i].capital

a.update(sD)

return a

new_nation_1 = Nation("Albania", "Republic of Albania", 8, "AL", "ALB", "Tirana")

new_nation_2 = Nation("Angola", "Republic of Angola", 24, "AO", "AGO", "Luanda")

nation_list = [new_nation_1, new_nation_2]

print(to_dictionaries(nation_list))

所需的输出:

{"Albania": {"long_name": "Republic of Albania", "iso_code": 8, "iso_short": "AL", "iso_long": "ALB", "capital": "Tirana"},

"Angola": {"long_name": "Republic of Angola", "iso_code": 24, "iso_short": "AO", "iso_long": "AGO", "capital": "Luanda"}}

实际输出:

{'long_name': 'Republic of Angola', 'iso_code': 24, 'iso_short': 'AO', 'iso_long': 'AGO', 'capital': 'Luanda'}

我该如何解决这个问题?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值