Hướng dẫn loop through nested array python - lặp qua python mảng lồng nhau

Tôi có một JSON trông như thế này:

[  
   {  
      "status":"passed",
      "elements":[{"name":"foo"},{"name":"bar"}]
   },
   {  
      "status":"failed",
      "elements":[{"name":"foo1"},{"name":"bar1"}]
   }
]

Tôi đang cố gắng lặp lại thông qua các yếu tố mảng:

for a in json['elements']:
   print a['name']

Tôi nhận được lỗi này:

TypeError: Danh sách chỉ số phải là số nguyên, không phải str

Python của tôi thực sự xấu. Cảm ơn bạn

Đã hỏi ngày 29 tháng 12 năm 2016 lúc 16:05Dec 29, 2016 at 16:05

Hướng dẫn loop through nested array python - lặp qua python mảng lồng nhau

teddybear123teddybear123teddybear123

2.1545 huy hiệu vàng23 Huy hiệu bạc38 Huy hiệu đồng5 gold badges23 silver badges38 bronze badges

1

Thử cái này:

for a in json:
   for b in a['elements']:
       print b['name']

Đã trả lời ngày 29 tháng 12 năm 2016 lúc 16:09Dec 29, 2016 at 16:09

Barak Manosbarak Manosbarak manos

29K9 Huy hiệu vàng57 Huy hiệu bạc113 Huy hiệu đồng9 gold badges57 silver badges113 bronze badges

1

Với mã của bạn, bạn đang cố gắng lấy giá trị của khóa

for a in json['elements']:
   print a['name']
1 từ từ điển
for a in json['elements']:
   print a['name']
2. Nhưng
for a in json['elements']:
   print a['name']
2 không phải là một dict, mà là một loạt các dicts. Vì vậy, những gì bạn nên làm thay vào đó là:

for dic_x in json:
    for dic_y in dic_x['elements']:
        print dic_y['name']

Đã trả lời ngày 29 tháng 12 năm 2016 lúc 16:08Dec 29, 2016 at 16:08

Carles Mitjanscarles MitjansCarles Mitjans

4.6542 Huy hiệu vàng18 Huy hiệu bạc36 Huy hiệu đồng2 gold badges18 silver badges36 bronze badges

Bạn cần phải lặp qua

for a in json['elements']:
   print a['name']
4 của mình và sau đó tiến hành dữ liệu của bạn như những gì bạn làm với
for a in json['elements']:
   print a['name']
5 như ví dụ này:

my_json = [  
   {  
      "status":"passed",
      "elements":[{"name":"foo"},{"name":"bar"}]
   },
   {  
      "status":"failed",
      "elements":[{"name":"foo1"},{"name":"bar1"}]
   }
]

for element in my_json:
    for v in element["elements"]:
        print(v["name"])

Output:

foo
bar
foo1
bar1

Đã trả lời ngày 29 tháng 12 năm 2016 lúc 16:12Dec 29, 2016 at 16:12

Hướng dẫn loop through nested array python - lặp qua python mảng lồng nhau

Chiheb Nexuschiheb nexusChiheb Nexus

8.7044 Huy hiệu vàng29 Huy hiệu bạc42 Huy hiệu đồng4 gold badges29 silver badges42 bronze badges

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọcanother List within itself. This sub-list which is within the list is what is commonly known as the Nested List.

    Bàn luận

    Trong bài viết này, chúng ta sẽ xem cách lặp lại thông qua một danh sách lồng nhau. Một danh sách có thể được sử dụng để lưu trữ nhiều loại dữ liệu như số nguyên, chuỗi, đối tượng và danh sách khác trong chính nó. Danh sách phụ này nằm trong danh sách là những gì thường được gọi là danh sách lồng nhau.

    Hướng dẫn loop through nested array python - lặp qua python mảng lồng nhau

    Hướng dẫn loop through nested array python - lặp qua python mảng lồng nhau

    Lặp lại thông qua một danh sách lồng nhau

    Cho phép chúng tôi xem một danh sách lồng nhau điển hình trông như thế nào:Use of the index to iterate through the list

    Có nhiều cách để lặp lại thông qua một danh sách lồng nhau:

    Python3

    Phương pháp 1: Sử dụng chỉ mục để lặp lại thông qua danh sách

    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    3
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    8
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    7
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    8

    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    3
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    8
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    7
    my_json = [  
       {  
          "status":"passed",
          "elements":[{"name":"foo"},{"name":"bar"}]
       },
       {  
          "status":"failed",
          "elements":[{"name":"foo1"},{"name":"bar1"}]
       }
    ]
    
    for element in my_json:
        for v in element["elements"]:
            print(v["name"])
    
    4
    my_json = [  
       {  
          "status":"passed",
          "elements":[{"name":"foo"},{"name":"bar"}]
       },
       {  
          "status":"failed",
          "elements":[{"name":"foo1"},{"name":"bar1"}]
       }
    ]
    
    for element in my_json:
        for v in element["elements"]:
            print(v["name"])
    
    5
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    8

    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    3
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    8
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    7
    my_json = [  
       {  
          "status":"passed",
          "elements":[{"name":"foo"},{"name":"bar"}]
       },
       {  
          "status":"failed",
          "elements":[{"name":"foo1"},{"name":"bar1"}]
       }
    ]
    
    for element in my_json:
        for v in element["elements"]:
            print(v["name"])
    
    4
    foo
    bar
    foo1
    bar1
    
    3
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    8

    Sử dụng chỉ số tích cực:

    Output:

    [80, 60, 70]
    80
    60
    70

    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    7
    for a in json['elements']:
       print a['name']
    
    8
    for a in json['elements']:
       print a['name']
    
    9
    for a in json:
       for b in a['elements']:
           print b['name']
    
    0
    for a in json:
       for b in a['elements']:
           print b['name']
    
    1
    for a in json:
       for b in a['elements']:
           print b['name']
    
    0
    for a in json:
       for b in a['elements']:
           print b['name']
    
    3______

    Python3

    Phương pháp 1: Sử dụng chỉ mục để lặp lại thông qua danh sách

    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    3
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    8
    Rohan is 60 years old.
    Aviral is 21 years old.
    Harsh is 30 years old.
    Rahul is 40 years old.
    Raj is 20 years old.
    4
    foo
    bar
    foo1
    bar1
    
    3
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    8

    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    3
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    8
    Rohan is 60 years old.
    Aviral is 21 years old.
    Harsh is 30 years old.
    Rahul is 40 years old.
    Raj is 20 years old.
    4
    foo
    bar
    foo1
    bar1
    
    3
    my_json = [  
       {  
          "status":"passed",
          "elements":[{"name":"foo"},{"name":"bar"}]
       },
       {  
          "status":"failed",
          "elements":[{"name":"foo1"},{"name":"bar1"}]
       }
    ]
    
    for element in my_json:
        for v in element["elements"]:
            print(v["name"])
    
    4
    Rohan is 60 years old.
    Aviral is 21 years old.
    Harsh is 30 years old.
    Rahul is 40 years old.
    Raj is 20 years old.
    4
    Rohan is 60 years old.
    Aviral is 21 years old.
    Harsh is 30 years old.
    Rahul is 40 years old.
    Raj is 20 years old.
    5
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    8

    Sử dụng chỉ số tích cực:

    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    3
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    8
    Rohan is 60 years old.
    Aviral is 21 years old.
    Harsh is 30 years old.
    Rahul is 40 years old.
    Raj is 20 years old.
    4
    foo
    bar
    foo1
    bar1
    
    3
    my_json = [  
       {  
          "status":"passed",
          "elements":[{"name":"foo"},{"name":"bar"}]
       },
       {  
          "status":"failed",
          "elements":[{"name":"foo1"},{"name":"bar1"}]
       }
    ]
    
    for element in my_json:
        for v in element["elements"]:
            print(v["name"])
    
    4
    Rohan is 60 years old.
    Aviral is 21 years old.
    Harsh is 30 years old.
    Rahul is 40 years old.
    Raj is 20 years old.
    4
    foo
    bar
    foo1
    bar1
    
    3
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    8

    Output:

    [80, 60, 70]
    80
    60
    70

    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    7
    for a in json['elements']:
       print a['name']
    
    8
    for a in json['elements']:
       print a['name']
    
    9
    for a in json:
       for b in a['elements']:
           print b['name']
    
    0
    for a in json:
       for b in a['elements']:
           print b['name']
    
    1
    for a in json:
       for b in a['elements']:
           print b['name']
    
    0
    for a in json:
       for b in a['elements']:
           print b['name']
    
    3______
    Use of loop to iterate through the list

    Hướng dẫn loop through nested array python - lặp qua python mảng lồng nhau

    Python3

    Các

    for a in json['elements']:
       print a['name']
    
    28
    for a in json['elements']:
       print a['name']
    
    8
    for a in json['elements']:
       print a['name']
    
    30
    for a in json:
       for b in a['elements']:
           print b['name']
    
    0
    for a in json:
       for b in a['elements']:
           print b['name']
    
    3
    for a in json['elements']:
       print a['name']
    
    23
    for a in json['elements']:
       print a['name']
    
    34
    for a in json:
       for b in a['elements']:
           print b['name']
    
    0
    for a in json:
       for b in a['elements']:
           print b['name']
    
    5
    for a in json['elements']:
       print a['name']
    
    37

    Sử dụng chỉ số âm

    Các

    for a in json['elements']:
       print a['name']
    
    49
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    3
    for a in json['elements']:
       print a['name']
    
    51
    my_json = [  
       {  
          "status":"passed",
          "elements":[{"name":"foo"},{"name":"bar"}]
       },
       {  
          "status":"failed",
          "elements":[{"name":"foo1"},{"name":"bar1"}]
       }
    ]
    
    for element in my_json:
        for v in element["elements"]:
            print(v["name"])
    
    5
    for a in json['elements']:
       print a['name']
    
    53
    for a in json['elements']:
       print a['name']
    
    54
    for a in json['elements']:
       print a['name']
    
    55
    foo
    bar
    foo1
    bar1
    
    3
    for a in json['elements']:
       print a['name']
    
    37

    for a in json['elements']:
       print a['name']
    
    58
    for a in json['elements']:
       print a['name']
    
    59
    for a in json['elements']:
       print a['name']
    
    60

    Output:

    Rohan is 60 years old.
    Aviral is 21 years old.
    Harsh is 30 years old.
    Rahul is 40 years old.
    Raj is 20 years old.

    Phương pháp 2: Sử dụng vòng lặp để lặp qua danh sách

    Python3

    Các

    Sử dụng chỉ số âm

    for a in json['elements']:
       print a['name']
    
    28
    for a in json['elements']:
       print a['name']
    
    8
    for a in json['elements']:
       print a['name']
    
    40
    for a in json:
       for b in a['elements']:
           print b['name']
    
    0
    for a in json:
       for b in a['elements']:
           print b['name']
    
    1
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    2

    Các

    for a in json['elements']:
       print a['name']
    
    49
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    3
    for a in json['elements']:
       print a['name']
    
    95
    for a in json['elements']:
       print a['name']
    
    54
    for a in json['elements']:
       print a['name']
    
    97

    for a in json['elements']:
       print a['name']
    
    58
    for a in json['elements']:
       print a['name']
    
    99
    for a in json['elements']:
       print a['name']
    
    59
    for a in json['elements']:
       print a['name']
    
    60

    Output:

    Rohan is 60 years old.
    Aviral is 21 years old.
    Harsh is 30 years old.
    Rahul is 40 years old.
    Raj is 20 years old.

    Phương pháp 2: Sử dụng vòng lặp để lặp qua danh sáchUse of Slicing

    Python3

    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    7
    for a in json['elements']:
       print a['name']
    
    19
    for a in json['elements']:
       print a['name']
    
    20
    for a in json:
       for b in a['elements']:
           print b['name']
    
    0
    for a in json:
       for b in a['elements']:
           print b['name']
    
    9
    for a in json['elements']:
       print a['name']
    
    23
    for a in json['elements']:
       print a['name']
    
    24
    for a in json:
       for b in a['elements']:
           print b['name']
    
    0
    for a in json['elements']:
       print a['name']
    
    26
    for a in json['elements']:
       print a['name']
    
    27

    for a in json['elements']:
       print a['name']
    
    28
    for a in json['elements']:
       print a['name']
    
    8
    for a in json['elements']:
       print a['name']
    
    40
    for a in json:
       for b in a['elements']:
           print b['name']
    
    0
    for a in json:
       for b in a['elements']:
           print b['name']
    
    1
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    2

    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    3
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    8
    for dic_x in json:
        for dic_y in dic_x['elements']:
            print dic_y['name']
    
    7
    for a in json:
       for b in a['elements']:
           print b['name']
    
    26

    for a in json['elements']:
       print a['name']
    
    44
    for a in json['elements']:
       print a['name']
    
    45
    for a in json['elements']:
       print a['name']
    
    46
    for a in json['elements']:
       print a['name']
    
    4
    for a in json['elements']:
       print a['name']
    
    48

    Output:

    for a in json['elements']:
       print a['name']
    
    0

    Làm thế nào để bạn lặp lại thông qua một mảng trong Python?

    Làm thế nào để tôi lặp lại thông qua một mảng chuỗi trong Python ?..
    Sử dụng vòng lặp cho chức năng phạm vi ..
    Sử dụng vòng lặp trong khi ..
    Sử dụng phương pháp hiểu ..
    Sử dụng phương pháp liệt kê ..
    Sử dụng Enumerate và định dạng đầu ra ..

    Làm thế nào để bạn tạo ra một vòng lặp lồng nhau trong Python?

    Đầu tiên, hãy viết một vòng lặp bên ngoài cho vòng lặp sẽ lặp lại danh sách đầu tiên như [cho tôi trong lần đầu tiên] Tiếp theo, hãy viết một vòng bên trong sẽ lặp lại danh sách thứ hai sau vòng lặp bên ngoài như [cho tôi trong lần thứ nhất cho J thứ hai]Việc bổ sung số bên ngoài và số bên trong như [i+j cho tôi trong lần đầu tiên cho j trong thứ hai]

    Làm thế nào để bạn vào một danh sách lồng nhau?

    Sử dụng một vòng lặp lồng nhau để lặp lại thông qua một danh sách lồng nhau.Sử dụng một vòng lặp để lặp qua mọi yếu tố của một danh sách.Nếu danh sách này chứa các danh sách khác, hãy sử dụng một vòng lặp khác để lặp lại thông qua các yếu tố trong những người phụ này.. Use a for-loop to iterate through every element of a list. If this list contains other lists, use another for-loop to iterate through the elements in these sublists.

    Làm thế nào để bạn đi qua một mảng đa chiều trong Python?

    Đi qua trong một mảng 2D trong Python có thể được thực hiện bằng cách sử dụng A cho một vòng lặp.Chúng ta có thể lặp qua mảng bên ngoài trước, và sau đó tại mỗi phần tử của mảng bên ngoài, chúng ta có một mảng khác, mảng bên trong của chúng ta chứa các phần tử.Vì vậy, đối với mỗi mảng bên trong, chúng tôi chạy một vòng lặp để vượt qua các yếu tố của nó.using a for a loop. We can iterate through the outer array first, and then at each element of the outer array, we have another array, our inner array containing the elements. So for each inner array, we run a loop to traverse its elements.