Hướng dẫn how do you traverse multiple lists in python? - làm thế nào để bạn duyệt qua nhiều danh sách trong python?

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

print "Map:"
for x, y in map[None, a, b]:
    print x, y
2, với đối số đầu tiên là
print "Map:"
for x, y in map[None, a, b]:
    print x, y
3, 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,

print "Map:"
for x, y in map[None, a, b]:
    print x, y
4 sẽ là
print "Map:"
for x, y in map[None, a, b]:
    print x, y
3.

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

print "Map:"
for x, y in map[None, a, b]:
    print x, y
6 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

print "Map:"
for x, y in map[None, a, b]:
    print x, y
7 cho mỗi mục của
print "Map:"
for x, y in map[None, a, b]:
    print x, y
8.

Thảo luận

Sử dụng

print "Map:"
for x, y in map[None, a, b]:
    print x, y
2 với
print "Map:"
for x, y in map[None, a, b]:
    print x, y
3 làm đối số đầu tiên là một biến thể tinh tế của cuộc gọi
print "Map:"
for x, y in map[None, a, b]:
    print x, y
2 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à
print "Map:"
for x, y in map[None, a, b]:
    print x, y
3, 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,
print "Map:"
for x, y in map[None, a, b]:
    print x, y
2 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ề

print "Map:"
for x, y in map[None, a, b]:
    print x, y
3 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

print "Map:"
for x, y in map[None, a, b]:
    print x, y
6 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ạ:

[[x,y] for x in a for y in b]

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

print "Map:"
for x, y in map[None, a, b]:
    print x, y
7 cho mọi yếu tố trong
print "Map:"
for x, y in map[None, a, b]:
    print x, y
8. Các yếu tố này được đưa vào một tuple
print "Zip:"
for x, y in zip[a, b]:
    print x, y
8
print "Zip:"
for x, y in zip[a, b]:
    print x, y
9. 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
print "List comprehension:"
for x, y in [[x,y] for x in a for y in b]:
    print x, y
0 ngoài cùng. Do đó, đầu ra của kỹ thuật thứ ba khá khác nhau:

List comprehension:
a1 b1
a1 b2
a2 b1
a2 b2
a3 b1
a3 b2

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

print "Map:"
for x, y in map[None, a, b]:
    print x, y
6 và
print "Map:"
for x, y in map[None, a, b]:
    print x, y
2 trong tham chiếu thư viện.Library Reference section on sequence types; documentation for the
print "Map:"
for x, y in map[None, a, b]:
    print x, y
6 and
print "Map:"
for x, y in map[None, a, b]:
    print x, y
2 built-ins in the Library Reference.

Giả sử tôi có hai hoặc nhiều danh sách có cùng độ dài. Một cách tốt để lặp lại thông qua chúng là gì?

print "Map:"
for x, y in map[None, a, b]:
    print x, y
8,
print "Map:"
for x, y in map[None, a, b]:
    print x, y
7 là danh sách.

 for i, ele in enumerate[a]:
    print ele, b[i]

hoặc

for i in range[len[a]]:
   print a[i], b[i]

Hoặc có bất kỳ biến thể tôi đang thiếu?

Có bất kỳ lợi thế cụ thể của việc sử dụng cái này hơn?

nbro

14.4K27 Huy hiệu vàng104 Huy hiệu bạc188 Huy hiệu đồng27 gold badges104 silver badges188 bronze badges

hỏi ngày 9 tháng 4 năm 2012 lúc 21:55Apr 9, 2012 at 21:55

0

Cách thông thường là sử dụng

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

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

Điều này sẽ dừng khi ngắn hơn của hai lần lặp

print "Map:"
for x, y in map[None, a, b]:
    print x, y
8 và
print "Map:"
for x, y in map[None, a, b]:
    print x, y
7 đã cạn kiệt. Cũng đáng chú ý:
print "List comprehension:"
for x, y in [[x,y] for x in a for y in b]:
    print x, y
8 [chỉ Python 2] và
print "List comprehension:"
for x, y in [[x,y] for x in a for y in b]:
    print x, y
9 [
Map:
a1 b1
a2 b2
a3 None
0 trong Python 3].

Đã trả lời ngày 9 tháng 4 năm 2012 lúc 21:55Apr 9, 2012 at 21:55

Sven Marnachsven MarnachSven Marnach

548K114 Huy hiệu vàng919 Huy hiệu bạc821 Huy hiệu đồng114 gold badges919 silver badges821 bronze badges

4

Bạn có thể sử dụng

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

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

Đã trả lời ngày 9 tháng 4 năm 2012 lúc 21:57Apr 9, 2012 at 21:57

Lệnh nào được sử dụng để vượt qua nhiều danh sách trong Python?

Dưới đây là các phương pháp mà người ta có thể đề cập đến để vượt qua các danh sách trong Python:..
Phương thức Python Range [] ..
Danh sách hiểu ..
Phương thức python liệt kê [] Phương thức ..
Chức năng Lambda ..
Mô -đun Python Numpy ..
Bằng cách sử dụng một vòng lặp ..
Bằng cách sử dụng một vòng lặp trong thời gian ..

Lệnh nào được sử dụng để vượt qua nhiều danh sách?

Hàm zip [] tạo ra một trình lặp sẽ tổng hợp các phần tử từ hai hoặc nhiều vòng lặp.Bạn có thể sử dụng trình lặp kết quả để giải quyết nhanh chóng và nhất quán các vấn đề lập trình phổ biến. function creates an iterator that will aggregate elements from two or more iterables. You can use the resulting iterator to quickly and consistently solve common programming problems.

Làm thế nào để bạn đi qua một danh sách trong Python?

6 cách để lặp lại thông qua một danh sách trong Python..
Sử dụng cho vòng lặp.Phương pháp dễ nhất để lặp lại danh sách trong lập trình Python là bằng cách sử dụng chúng cho một vòng lặp.....
Sử dụng hàm vòng và phạm vi [].....
Sử dụng trong khi vòng lặp.....
Sử dụng danh sách hiểu.....
Sử dụng hàm liệt kê [].....
Sử dụng chức năng numpy ..

Làm thế nào để bạn đi qua một danh sách các bộ dữ liệu trong Python?

Cách dễ nhất là sử dụng hai lần lồng cho các vòng.Vòng ngoài tìm nạp từng bộ tuple và vòng bên trong đi qua từng vật phẩm từ tuple.Inner in [] hàm end = '' để in tất cả các mục thành một bộ trong một dòng.Một bản in khác [] giới thiệu dòng mới sau mỗi tuple.employ two nested for loops. Outer loop fetches each tuple and inner loop traverses each item from the tuple. Inner print[] function end=' ' to print all items in a tuple in one line. Another print[] introduces new line after each tuple.

Bài Viết Liên Quan

Chủ Đề