我不能讓我的頭在這一個。還是我過於複雜的事情?我試圖讓這個代碼更加'Pythonic'。這裏Python的理解,名單字典
statuses = {record['id'] : [] for record in data}
for record in data:
for status in record['statuses']:
data = {
'status_code': status['statusCode'],
'short_desc': status['statusShortDesc'],
}
if 'statusLongDesc' in status:
data.update({'long_desc': status['statusLongDesc']})
else:
data.update({'long_desc': ''})
statuses[record['id']] += [data]
}
}
一些挑戰,下面我知道代碼是錯誤的,但我想傳達給得到我想要用了知道如何:
如何在字典中的更新列表理解?沿着這條線。這會工作嗎?有些事情對我來說並不合適。我是否被花括號帶走了?
statuses = { { record['id']: list({ 'status_code': status['statusCode'], 'short_desc': status['statusShortDesc'], 'long_desc': '' }) } for record in data for status in record['statuses'] }
這將產生TypeError: unhashable type: 'dict'
- 我怎樣才能再沒有在我原來的代碼重複數據部分像調整long_desc? (我的字典實際上要長很多,看起來很瘋狂,重複所有的一行。)像:
then if 'statusLongDesc' in status list.extend('long_desc': status['statusLongDesc'])
增加了上述理解。
你的原始代碼是更「pythonic」國際海事組織。它很容易閱讀,而且意圖很清楚。 pythonic意味着簡短,簡潔並且易於閱讀。 –