복붙노트

[PYTHON] 사전 목록 반복

PYTHON

사전 목록 반복

목록이 있습니다. -myList - 각 요소는 사전입니다. 이 목록을 반복하고 싶지만 매번 사전마다 한 속성 - '연령'- 만 흥미 롭습니다. 또한 반복 횟수를 유지하는 데 관심이 있습니다.

나는한다:

for i, entry in enumerate(myList):
    print i;
    print entry['age']; 

그러나 거기에 더 무언가가 궁금 해서요. 어떤 팁?

해결법

  1. ==============================

    1.당신은 발전기를 사용하여 나이를 잡을 수 있습니다.

    당신은 발전기를 사용하여 나이를 잡을 수 있습니다.

    # Get a dictionary 
    myList = [{'age':x} for x in range(1,10)]
    
    # Enumerate ages
    for i, age in enumerate(d['age'] for d in myList): 
        print i,age
    

    그리고, 예, 세미콜론을 사용하지 마십시오.

  2. ==============================

    2.아주 간단한 방법으로, 사전 반복 목록

    아주 간단한 방법으로, 사전 반복 목록

    >>> my_list
    [{'age': 0, 'name': 'A'}, {'age': 1, 'name': 'B'}, {'age': 2, 'name': 'C'}, {'age': 3, 'name': 'D'}, {'age': 4, 'name': 'E'}, {'age': 5, 'name': 'F'}]
    
    >>> ages = [li['age'] for li in my_list]
    
    >>> ages
    [0, 1, 2, 3, 4, 5]
    
  3. ==============================

    3.인쇄의 경우 아마 당신이하는 일이 옳은 것입니다. 그러나 값을 저장하려는 경우 목록 이해를 사용할 수 있습니다.

    인쇄의 경우 아마 당신이하는 일이 옳은 것입니다. 그러나 값을 저장하려는 경우 목록 이해를 사용할 수 있습니다.

    >>> d_list = [dict((('age', x), ('foo', 1))) for x in range(10)]
    >>> d_list
    [{'age': 0, 'foo': 1}, {'age': 1, 'foo': 1}, {'age': 2, 'foo': 1}, {'age': 3, 'foo': 1}, {'age': 4, 'foo': 1}, {'age': 5, 'foo': 1}, {'age': 6, 'foo': 1}, {'age': 7, 'foo': 1}, {'age': 8, 'foo': 1}, {'age': 9, 'foo': 1}]
    >>> ages = [d['age'] for d in d_list]
    >>> ages
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> len(ages)
    10
    
  4. ==============================

    4.Python에서는 줄 끝의 세미콜론이 필요하지 않습니다 (여러 줄을 같은 줄에 넣으려는 경우 사용할 수 있지만). 그래서 그들을 생략하는 것은 더 파이썬적일 것입니다.

    Python에서는 줄 끝의 세미콜론이 필요하지 않습니다 (여러 줄을 같은 줄에 넣으려는 경우 사용할 수 있지만). 그래서 그들을 생략하는 것은 더 파이썬적일 것입니다.

    그러나 실제 반복 전략은 따라하기 쉽고 실제로 수행중인 작업에 대해 명시 적입니다. 그것을 할 수있는 다른 방법이 있습니다. 그러나 명백한 for-loop는 완벽하지 않습니다.

    (Niklas B.의 대답은 당신이하는 일을 정확하게하지 않을 것입니다 : 만약 당신이 그런 것을하고 싶다면, 형식 문자열은 "{0} \ n {1}"이어야합니다.)

  5. from https://stackoverflow.com/questions/9152431/iterating-over-list-of-dictionaries by cc-by-sa and MIT license