Hướng dẫn for loop with multiple lists python - vòng lặp for có nhiều danh sách python

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

Lưu bài viết

  • Đọc
  • Bàn luận
  • Cải thiện bài viết

    Lưu bài viết

    Đọcfor loops for iteration over a single element of a single list at a particular step whereas in iterating over multiple lists simultaneously, we refer using for loops for iteration over a single element of multiple lists at a particular step.

    Bàn luận

    Lặp lại trên các danh sách đơn, đề cập đến việc sử dụng các vòng lặp để lặp qua một phần tử duy nhất của một danh sách duy nhất ở một bước cụ thể trong khi lặp lại qua nhiều danh sách, chúng tôi đề cập đến các vòng lặp để lặp qua một phần tử của nhiều danh sách ở một bước cụ thể .

    Lặp lại qua nhiều danh sách cùng một lúc

    1. Để hiểu rõ hơn về việc lặp lại nhiều danh sách, chúng tôi đang lặp lại hơn 3 danh sách cùng một lúc. : In Python 3, zip returns an iterator. zip[] function stops when anyone of the list of all the lists gets exhausted. In simple words, it runs till the smallest of all the lists.

      Chúng tôi có thể lặp lại danh sách đồng thời theo cách:

      Python3

      Zip []: Trong Python 3, ZIP trả về một trình lặp. Hàm zip [] dừng khi bất kỳ ai trong danh sách tất cả các danh sách bị kiệt sức. Nói một cách đơn giản, nó chạy cho đến nhỏ nhất trong tất cả các danh sách.

      Dưới đây là việc triển khai chức năng zip và itertools.izip lặp đi lặp lại trên 3 danh sách:

      1 red 255
      2 while 256
      3 black None
      
      2
      1 red 255
      2 while 256
      3 black None
      
      3

      1 red 255
      2 while 256
      3 black None
      
      4
      1 red 255
      2 while 256
      3 black None
      
      5
      1 red 255
      2 while 256
      3 black None
      
      6
      1 red 255
      2 while 256
      3 black None
      
      7
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black None
      
      9
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black None
      
      1
      1 red 255
      2 while 256
      3 black None
      
      2

      1 red 255
      2 while 256
      3 black None
      
      3
      1 red 255
      2 while 256
      3 black None
      
      5
      1 red 255
      2 while 256
      3 black None
      
      6
      1 red 255
      2 while 256
      3 black None
      
      6
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black -1
      
      0
      1 red 255
      2 while 256
      3 black None
      
      2

      1 red 255
      2 while 256
      3 black -1
      
      2
      1 red 255
      2 while 256
      3 black None
      
      5
      1 red 255
      2 while 256
      3 black None
      
      6
      1 red 255
      2 while 256
      3 black -1
      
      5
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black -1
      
      7
      1 red 255
      2 while 256
      3 black None
      
      2

      Output:

      1 red 255
      2 while 256
      

    2. 1 red 255
      2 while 256
      3 black -1
      
      9
      a = ['a1', 'a2', 'a3']
      b = ['b1', 'b2']
      0
      a = ['a1', 'a2', 'a3']
      b = ['b1', 'b2']
      1
      a = ['a1', 'a2', 'a3']
      b = ['b1', 'b2']
      2
      a = ['a1', 'a2', 'a3']
      b = ['b1', 'b2']
      3
      : zip_longest stops when all lists are exhausted. When the shorter iterator[s] are exhausted, zip_longest yields a tuple with None value.

      a = ['a1', 'a2', 'a3']
      b = ['b1', 'b2']
      4
      a = ['a1', 'a2', 'a3']
      b = ['b1', 'b2']
      5
      a = ['a1', 'a2', 'a3']
      b = ['b1', 'b2']
      6

      Python3

      Zip []: Trong Python 3, ZIP trả về một trình lặp. Hàm zip [] dừng khi bất kỳ ai trong danh sách tất cả các danh sách bị kiệt sức. Nói một cách đơn giản, nó chạy cho đến nhỏ nhất trong tất cả các danh sách.

      Dưới đây là việc triển khai chức năng zip và itertools.izip lặp đi lặp lại trên 3 danh sách:

      1 red 255
      2 while 256
      3 black None
      
      2
      1 red 255
      2 while 256
      3 black None
      
      3

      1 red 255
      2 while 256
      3 black None
      
      4
      1 red 255
      2 while 256
      3 black None
      
      5
      1 red 255
      2 while 256
      3 black None
      
      6
      1 red 255
      2 while 256
      3 black None
      
      7
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black None
      
      9
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black None
      
      1
      1 red 255
      2 while 256
      3 black None
      
      2

      1 red 255
      2 while 256
      3 black None
      
      3
      1 red 255
      2 while 256
      3 black None
      
      5
      1 red 255
      2 while 256
      3 black None
      
      6
      1 red 255
      2 while 256
      3 black None
      
      6
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black -1
      
      0
      1 red 255
      2 while 256
      3 black None
      
      2

      1 red 255
      2 while 256
      3 black -1
      
      2
      1 red 255
      2 while 256
      3 black None
      
      5
      1 red 255
      2 while 256
      3 black None
      
      6
      1 red 255
      2 while 256
      3 black -1
      
      5
      1 red 255
      2 while 256
      3 black None
      
      8
      1 red 255
      2 while 256
      3 black -1
      
      7
      1 red 255
      2 while 256
      3 black None
      
      2

      Output:

      1 red 255
      2 while 256
      3 black None
      

      Output:

      1 red 255
      2 while 256
      3 black None
      

    1 red 255
    2 while 256
    3 black -1
    
    9
    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    0
    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    1
    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    2
    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    3

    Python3

    Zip []: Trong Python 3, ZIP trả về một trình lặp. Hàm zip [] dừng khi bất kỳ ai trong danh sách tất cả các danh sách bị kiệt sức. Nói một cách đơn giản, nó chạy cho đến nhỏ nhất trong tất cả các danh sách.

    Dưới đây là việc triển khai chức năng zip và itertools.izip lặp đi lặp lại trên 3 danh sách:

    1 red 255
    2 while 256
    3 black None
    
    2
    1 red 255
    2 while 256
    3 black None
    
    3

    1 red 255
    2 while 256
    3 black None
    
    4
    1 red 255
    2 while 256
    3 black None
    
    5
    1 red 255
    2 while 256
    3 black None
    
    6
    1 red 255
    2 while 256
    3 black None
    
    7
    1 red 255
    2 while 256
    3 black None
    
    8
    1 red 255
    2 while 256
    3 black None
    
    9
    1 red 255
    2 while 256
    3 black None
    
    8
    1 red 255
    2 while 256
    3 black None
    
    1
    1 red 255
    2 while 256
    3 black None
    
    2

    1 red 255
    2 while 256
    3 black None
    
    3
    1 red 255
    2 while 256
    3 black None
    
    5
    1 red 255
    2 while 256
    3 black None
    
    6
    1 red 255
    2 while 256
    3 black None
    
    6
    1 red 255
    2 while 256
    3 black None
    
    8
    1 red 255
    2 while 256
    3 black None
    
    8
    1 red 255
    2 while 256
    3 black None
    
    8
    1 red 255
    2 while 256
    3 black -1
    
    0
    1 red 255
    2 while 256
    3 black None
    
    2

    1 red 255
    2 while 256
    3 black -1
    
    2
    1 red 255
    2 while 256
    3 black None
    
    5
    1 red 255
    2 while 256
    3 black None
    
    6
    1 red 255
    2 while 256
    3 black -1
    
    5
    1 red 255
    2 while 256
    3 black None
    
    8
    1 red 255
    2 while 256
    3 black -1
    
    7
    1 red 255
    2 while 256
    3 black None
    
    2

    Output:

    1 red 255
    2 while 256
    3 black -1
    


    1 red 255
    2 while 256
    3 black -1
    
    9
    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    0
    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    1
    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    2
    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    3
    Python 2.x had two extra functions izip[] and izip_longest[]. In Python 2.x, zip[] and zip_longest[] used to return list, and izip[] and izip_longest[] used to return iterator. In Python 3.x, there izip[] and izip_longest[] are not there as zip[] and zip_longest[] return iterator.


    Vòng lặp qua nhiều danh sách

    Tín dụng: Andy McKay

    Vấn đề

    Bạn cần phải lặp qua mọi mục của nhiều danh sách.

    Dung dịch

    Về cơ bản có ba cách tiếp cận. Nói bạn có:

    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']

    Sử dụng chức năng tích hợp

    1 red 255
    2 while 256
    3 black None
    
    19, với đối số đầu tiên là
    1 red 255
    2 while 256
    3 black None
    
    20, bạn có thể lặp lại trên cả hai danh sách song song:

    print "Map:"
    for x, y in map[None, a, b]:
        print x, y

    Các vòng lặp chạy ba lần. Trên lần lặp cuối cùng,

    1 red 255
    2 while 256
    3 black None
    
    21 sẽ là
    1 red 255
    2 while 256
    3 black None
    
    20.

    Sử dụng chức năng tích hợp

    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    2 cũng cho phép bạn lặp lại song song:

    print "Zip:"
    for x, y in zip[a, b]:
        print x, y

    Vòng lặp chạy hai lần; Việc lặp thứ ba chỉ đơn giản là không được thực hiện.

    Danh sách hiểu biết có một lần lặp rất khác nhau:

    print "List comprehension:"
    for x, y in [[x,y] for x in a for y in b]:
        print x, y

    Vòng lặp chạy sáu lần, trên mỗi mục của

    1 red 255
    2 while 256
    3 black None
    
    24 cho mỗi mục của
    1 red 255
    2 while 256
    3 black None
    
    25.

    Thảo luận

    Sử dụng

    1 red 255
    2 while 256
    3 black None
    
    19 với
    1 red 255
    2 while 256
    3 black None
    
    20 làm đối số đầu tiên là một biến thể tinh tế của cuộc gọi
    1 red 255
    2 while 256
    3 black None
    
    19 tiêu chuẩn, thường có chức năng là đối số đầu tiên. Như tài liệu chỉ ra, nếu đối số đầu tiên là
    1 red 255
    2 while 256
    3 black None
    
    20, hàm nhận dạng được sử dụng làm hàm mà qua đó các đối số được ánh xạ. Nếu có nhiều đối số danh sách,
    1 red 255
    2 while 256
    3 black None
    
    19 trả về một danh sách bao gồm các bộ dữ liệu chứa các mục tương ứng từ tất cả các danh sách [nói cách khác, thì đó là một loại hoạt động chuyển vị]. Các đối số danh sách có thể là bất kỳ loại trình tự nào và kết quả luôn là một danh sách.

    Lưu ý rằng kỹ thuật đầu tiên trả về

    1 red 255
    2 while 256
    3 black None
    
    20 cho các chuỗi trong đó không có thêm các yếu tố. Do đó, đầu ra của vòng lặp đầu tiên là:

    Map:
    a1 b1
    a2 b2
    a3 None

    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    2 cho phép bạn lặp lại các danh sách theo cách tương tự, nhưng chỉ có số lượng các yếu tố của danh sách nhỏ nhất. Do đó, đầu ra của kỹ thuật thứ hai là:

    Zip:
    a1 b1
    a2 b2

    Python 2.0 đã giới thiệu các toàn bộ danh sách, với một cú pháp mà một số tìm thấy một chút lạ:

    1 red 255
    2 while 256
    3 black None
    
    0

    Điều này lặp lại trong danh sách

    1 red 255
    2 while 256
    3 black None
    
    24 cho mọi yếu tố trong
    1 red 255
    2 while 256
    3 black None
    
    25. Các yếu tố này được đưa vào một tuple
    1 red 255
    2 while 256
    3 black None
    
    35
    1 red 255
    2 while 256
    3 black None
    
    36. Sau đó, chúng tôi lặp lại thông qua danh sách kết quả của các bộ dữ liệu trong vòng lặp
    1 red 255
    2 while 256
    3 black -1
    
    9 ngoài cùng. Do đó, đầu ra của kỹ thuật thứ ba khá khác nhau:

    1 red 255
    2 while 256
    3 black None
    
    1

    Xem thêm

    Phần tham chiếu thư viện về các loại trình tự; Tài liệu cho các tích hợp

    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    2 và
    1 red 255
    2 while 256
    3 black None
    
    19 trong tài liệu tham khảo thư viện.Library Reference section on sequence types; documentation for the
    a = ['a1', 'a2', 'a3']
    b = ['b1', 'b2']
    2 and
    1 red 255
    2 while 256
    3 black None
    
    19 built-ins in the Library Reference.

    Bài Viết Liên Quan

    Chủ Đề