如何在Python中从嵌套列表提取特定值:获取国家与d_id(缺失补0)
解决方案:提取国家与对应d_id值
country_list = [['Russia',[{'id': 250282,'d_id': 19553,'p_id': 1796,'value': 'silver'}, {'id': 250212,'d_id': 19553,'p_id': 1896,'value': 'gold'}, {'id': 250242,'d_id': 19553,'p_id': 1396,'value': 'iron'}, {'id': 250082,'d_id': 19553,'p_id': 1496,'value': 'cobalt'}]], ['China',[{'id': 210282,'d_id': 193,'p_id': 1196,'value': 'silver'}, {'id': 220212,'d_id': 193,'p_id': 1396,'value': 'iron'}, {'id': 240242,'d_id': 193,'p_id': 1586,'value': 'iron'}, {'id': 250082,'d_id': 193,'p_id': 1492,'value': 'gold'}]], ['Africa',[]], ['USA',[{'id': 200282,'d_id': 5531,'p_id': 1093,'value': 'iron'}, {'id': 253212,'d_id': 5531,'p_id': 1843,'value': 'gold'}, {'id': 255242,'d_id': 5531,'p_id': 1323,'value': 'iron'}, {'id': 257082,'d_id': 5531,'p_id': 1409,'value': 'cobalt'}]], ['UK',[]]]
需求说明
提取每个国家名称及对应的唯一d_id值(同一国家的d_id均相同);若国家对应的字典列表为空,则d_id补0,期望输出格式如下:
'Russia', 19553 'China', 193 'Africa', 0 'USA', 5531 'UK', 0
实现代码
for country, data_list in country_list: # 检查数据列表是否非空 d_id = data_list[0]['d_id'] if data_list else 0 # 格式化输出对齐 print(f"'{country}', {d_id:4d}")
代码说明
- 遍历嵌套列表,直接解构出国家名
country和对应字典列表data_list。 - 用三元表达式简化判断:若
data_list非空,取第一个字典的d_id(因同一国家d_id唯一);否则赋值为0。 - 通过
f-string的{d_id:4d}格式,让数字占4位宽度,实现和期望输出一致的对齐效果。
内容的提问来源于stack exchange,提问作者shaik khadar
相关产品推荐
相关产品推荐

