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

10

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Giả sử tôi có 3 danh sách như thế này

l1 = [1,2,3]
l2 = [4,5,6]
l3 = [7,8,9]

Làm thế nào để tôi có thể in ra mọi thứ từ các danh sách này cùng một lúc? Cách pythonic để làm điều gì đó như vậy là gì?

for f in l1,l2 and l3:
    print f 

Điều này dường như chỉ tính đến 2 danh sách vào tài khoản.

Đầu ra mong muốn: Đối với mỗi phần tử trong tất cả các danh sách, tôi đang in chúng ra bằng một chức năng khác nhau

def print_row(filename, status, Binary_Type):
    print " %-45s %-15s %25s " % (filename, status, Binary_Type)

và tôi gọi hàm trên bên trong vòng lặp cho.

Hỏi ngày 20 tháng 8 năm 2012 lúc 15:52Aug 20, 2012 at 15:52

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

Cyberbemoncyberbemoncyberbemon

2.89011 Huy hiệu vàng36 Huy hiệu bạc62 Huy hiệu Đồng11 gold badges36 silver badges62 bronze badges

5

Tôi nghĩ bạn có thể muốn

for f in l1,l2 and l3:
    print f 
5:

for x,y,z in zip(l1,l2,l3):
    print x,y,z  #1 4 7
                 #2 5 8
                 #3 6 9

Bạn đang làm gì vậy:

for f in l1,l2 and l3:

là một chút lạ. Về cơ bản, nó tương đương với

for f in l1,l2 and l3:
    print f 
6 kể từ khi
for f in l1,l2 and l3:
    print f 
7 trả về
for f in l1,l2 and l3:
    print f 
8 (giả sử rằng
for f in l1,l2 and l3:
    print f 
9 và
for f in l1,l2 and l3:
    print f 
8 đều không trống-nếu không, nó sẽ trả về cái trống.)

Nếu bạn chỉ muốn in từng danh sách liên tiếp, bạn có thể làm:

for lst in (l1,l2,l3):  #parenthesis unnecessary, but I like them...
    print lst   #[ 1, 2, 3 ]
                #[ 4, 5, 6 ]
                #[ 7, 8, 9 ]

Đã trả lời ngày 20 tháng 8 năm 2012 lúc 15:54Aug 20, 2012 at 15:54

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

Mgilsonmgilsonmgilson

289K60 Huy hiệu vàng607 Huy hiệu bạc676 Huy hiệu Đồng60 gold badges607 silver badges676 bronze badges

3

Không cần sử dụng

for f in l1,l2 and l3:
    print f 
5, chỉ cần thêm chúng với nhau bằng toán tử
def print_row(filename, status, Binary_Type):
    print " %-45s %-15s %25s " % (filename, status, Binary_Type)
2.
def print_row(filename, status, Binary_Type):
    print " %-45s %-15s %25s " % (filename, status, Binary_Type)
3 Tạo một danh sách mới là sự kết hợp của
def print_row(filename, status, Binary_Type):
    print " %-45s %-15s %25s " % (filename, status, Binary_Type)
4,
for f in l1,l2 and l3:
    print f 
9 và
for f in l1,l2 and l3:
    print f 
8 để bạn có thể chỉ cần lặp qua đó, như vậy:

for f in l1+l2+l3:
    print(f)

Việc bạn sử dụng toán tử

def print_row(filename, status, Binary_Type):
    print " %-45s %-15s %25s " % (filename, status, Binary_Type)
7 không chính xác. Một lý do khác tại sao mã của bạn không hoạt động là sử dụng dấu phẩy (như
def print_row(filename, status, Binary_Type):
    print " %-45s %-15s %25s " % (filename, status, Binary_Type)
8) tạo ra một tuple, đây là một thùng chứa hiện đang giữ 3 danh sách của bạn. Vì vậy, khi bạn cố gắng lặp qua
def print_row(filename, status, Binary_Type):
    print " %-45s %-15s %25s " % (filename, status, Binary_Type)
8, nó sẽ lặp qua mọi yếu tố trong bộ điều đó (là danh sách) chứ không phải thông qua mọi yếu tố trong danh sách như bạn dự định.

Đã trả lời ngày 20 tháng 8 năm 2012 lúc 15:55Aug 20, 2012 at 15:55

LanarulanaruLanaru

8.9627 Huy hiệu vàng33 Huy hiệu bạc62 Huy hiệu Đồng7 gold badges33 silver badges62 bronze badges

Nếu bạn muốn in

1 4 7
2 5 8
3 6 9

Do:

for i,j,k in zip(l1,l2,l3):
    print i,j,k

Đã trả lời ngày 20 tháng 8 năm 2012 lúc 15:56Aug 20, 2012 at 15:56

inspectorG4dgetinspectorG4dgetinspectorG4dget

106K25 Huy hiệu vàng138 Huy hiệu bạc236 Huy hiệu Đồng25 gold badges138 silver badges236 bronze badges

Nó phụ thuộc vào những gì bạn muốn đạt được,

>>> #Given
>>> l1,l2,l3 = [1,2,3],[4,5,6],[7,8,9]
>>> #To print row wise
>>> import itertools
>>> for f in itertools.chain(l1,l2,l3):
    print(f,end=" ")


1 2 3 4 5 6 7 8 9 
>>> #To print column wise
>>> for f in itertools.izip(l1,l2,l3):
    print(*f,end=" ")


1 4 7 2 5 8 3 6 9 
>>> 

hoặc triển khai sau đây sẽ hoạt động trong Python 2.7

for f in l1,l2 and l3:
    print f 
0

Đã trả lời ngày 20 tháng 8 năm 2012 lúc 16:09Aug 20, 2012 at 16:09

AbhijitabhijitAbhijit

60.2K18 Huy hiệu vàng127 Huy hiệu bạc198 Huy hiệu đồng18 gold badges127 silver badges198 bronze badges

Danh sách của bạn không phải là cùng một độ dài, thường tốt hơn là sử dụng

for x,y,z in zip(l1,l2,l3):
    print x,y,z  #1 4 7
                 #2 5 8
                 #3 6 9
0:

for f in l1,l2 and l3:
    print f 
1

Đã trả lời ngày 20 tháng 8 năm 2012 lúc 16:06Aug 20, 2012 at 16:06

Charles Beattiecharles BeattieCharles Beattie

5.5871 Huy hiệu vàng29 Huy hiệu bạc32 Huy hiệu đồng1 gold badge29 silver badges32 bronze badges

1

Để mở rộng trên câu trả lời của Abhijit, bạn có thể sử dụng Trình tạo itertools làm điều có thể hiểu được trong một danh sách hiểu.

for f in l1,l2 and l3:
    print f 
2

Đã trả lời ngày 20 tháng 8 năm 2012 lúc 17:39Aug 20, 2012 at 17:39

DandanDan

1.1492 huy hiệu vàng10 Huy hiệu bạc18 Huy hiệu đồng2 gold badges10 silver badges18 bronze badges

Nếu bạn có nghĩa là bạn có 3 danh sách có độ dài bằng nhau và bạn muốn in nội dung của chúng dưới dạng 3 cột, thì làm thế nào về zip () để kết nối các cột và danh sách hiểu để in () trên mỗi lần lặp:

for f in l1,l2 and l3:
    print f 
3

Trên đây sẽ in repr của Tuple (s). Nếu bạn muốn định dạng các giá trị khác:

for f in l1,l2 and l3:
    print f 
4

Không ai nói bạn phải sử dụng đầu ra của một danh sách hiểu.

Đã trả lời ngày 20 tháng 12 năm 2017 lúc 19:28Dec 20, 2017 at 19:28

Pourhauspourhauspourhaus

5176 Huy hiệu bạc9 Huy hiệu Đồng6 silver badges9 bronze badges

Làm thế nào để bạn in hai danh sách trong Python?

Bạn có thể sử dụng hàm zip () để kết hợp các danh sách với nhau. Hàm zip () sẽ lặp lại các bộ dữ liệu với các phần tử tương ứng từ mỗi danh sách, sau đó bạn có thể định dạng như Michael Butscher đề xuất trong các bình luận. Cuối cùng, chỉ cần tham gia () chúng cùng với Newlines và bạn có chuỗi bạn muốn.use the zip() function to join lists together. The zip() function will iterate tuples with the corresponding elements from each of the lists, which you can then format as Michael Butscher suggested in the comments. Finally, just join() them together with newlines and you have the string you want.

Làm thế nào để bạn viết nhiều danh sách trong Python?

Phương pháp số 1: Sử dụng các vòng lặp ..
Phương thức số 2: Sử dụng Phương thức DefaultDict () ..
Phương pháp 4: Sử dụng * toán tử:.

Làm cách nào để in danh sách danh sách trong Python?

Sử dụng biểu tượng * để in một danh sách trong Python.Để in nội dung của một danh sách trong một dòng duy nhất với không gian, toán tử * hoặc splat là một cách để đi.Nó chuyển tất cả các nội dung của một danh sách cho một hàm.Chúng ta có thể in tất cả các phần tử trong các dòng mới hoặc được phân tách bằng không gian và để làm điều đó, chúng ta sử dụng sep =, \ n, hoặc sep =, tương ứng.* or splat operator is one way to go. It passes all of the contents of a list to a function. We can print all elements in new lines or separated by space and to do that, we use sep=”\n” or sep=”, ” respectively.

Bạn có thể in một danh sách trong Python không?

Khi bạn muốn in các phần tử danh sách trong một dòng duy nhất với các khoảng trống ở giữa, bạn có thể sử dụng toán tử "**" cho cùng.Sử dụng toán tử này, bạn có thể in tất cả các phần tử của danh sách trong một dòng riêng biệt mới với các khoảng trống ở giữa mọi phần tử bằng thuộc tính SEP như SEP =,/N, hoặc SEP = ,.