1

如何仅打印此词典列表中的“中间”或“状态”?


list = [{'status': 'OK', 'mid': '6269'}, {'status': 'OK', 'mid': '6270'},{'status': 'OK', 'mid': '6271'}, {'status': 'OK', 'mid': '6272'}, {'status': 'OK', 'mid': '6273'}, {'status': 'OK', 'mid': '6274'},{'status': 'OK', 'mid': '6288'}, {'status': 'OK', 'mid': '6289'}]

我试过了:print list[0]['mid']但它只为列表中的第一项提供“中间”值?我怎样才能做到这一点list

4

2 回答 2

8

使用列表推导:

data = [{'status': 'OK', 'mid': '6269'},
        {'status': 'OK', 'mid': '6270'},
        {'status': 'OK', 'mid': '6271'},
        {'status': 'OK', 'mid': '6272'},
        {'status': 'OK', 'mid': '6273'},
        {'status': 'OK', 'mid': '6274'},
        {'status': 'OK', 'mid': '6288'},
        {'status': 'OK', 'mid': '6289'}]

print [item['mid'] for item in data]

PS:不要命名你的变量list,你不能使用内置的list

于 2013-04-24T12:25:41.067 回答
1

虽然上面的答案是正确的,但我会尝试解释为什么 OP 的原始代码不起作用。

  1. 首先是变量的名称。对原始问题的评论解释得很好
  2. 你说为什么 print list[0]['mid'] 只给出第一个值。原因是您只给出 list[0],它是一个包含两个键的字典,状态和中间,并且您试图获取与“中间”键对应的值,这将是一个值

如果您在使用简单的 for 循环之前没有使用过 List Comprehensions,它的范围从 0 到列表的长度。或用于迭代列表类型中的项目。

于 2013-04-24T15:16:30.333 回答