Hướng dẫn how do i print vertical data in python? - làm cách nào để in dữ liệu dọc trong python?

Đối với một giải pháp chung, bạn có thể làm một cái gì đó dọc theo các dòng sau:

from itertools import zip_longest

lets = list('abcdefghijklmnop')

def table(it, rows):
    return zip_longest(*[it[i:i+rows] for i in range(0, len(it), rows)], 
                            fillvalue=' ')

for t in table(lets, 6):
    print(*t) 

Prints:

a g m
b h n
c i o
d j p
e k 
f l 

Vì chúng tôi đang sử dụng zip_longest (

a g m
b h n
c i o
d j p
e k 
f l 
5 cho Python 2), bạn có thể cung cấp một fillvalue và giá trị kết thúc lẻ sẽ không bị cắt ngắn.

Nếu bạn muốn thay đổi các cột, hãy thay đổi số lượng hàng:

for t in table(lets, 2):
    print(*t)  

Prints:

a c e g i k m o
b d f h j l n p

Tất nhiên, thật dễ dàng toán học để tìm ra mối quan hệ giữa COL và hàng nếu bạn có một danh sách X vật phẩm dài.

Vậy làm thế nào để làm việc này?

Theo định nghĩa, một bảng là một ma trận. Vì vậy, trước tiên, hãy tạo một ma trận dài

a g m
b h n
c i o
d j p
e k 
f l 
6:

>>> lets
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']
>>> rows=6
>>> [lets[i:i+rows] for i in range(0, len(lets), rows)]
[['a', 'b', 'c', 'd', 'e', 'f'], ['g', 'h', 'i', 'j', 'k', 'l'], ['m', 'n', 'o', 'p']]

Sau đó, đảo ngược ma trận đó:

>>> for t in zip_longest(*[lets[i:i+rows] for i in range(0, len(lets), rows)]):
...     print(t)
... 
('a', 'g', 'm')
('b', 'h', 'n')
('c', 'i', 'o')
('d', 'j', 'p')
('e', 'k', None)
('f', 'l', None)

Và đi từ đó ...

Bản in của danh sách đã được xử lý nhiều lần. Nhưng đôi khi chúng ta cần một định dạng khác nhau để có được đầu ra của danh sách. Điều này cũng có một ứng dụng để đạt được chuyển vị ma trận. In danh sách dọc cũng có ứng dụng trong phát triển web. Hãy để thảo luận về một số cách mà nhiệm vụ này có thể được thực hiện.

Phương pháp số 1: Sử dụng a g m b h n c i o d j p e k f l 7

Sử dụng hàm zip, chúng tôi ánh xạ các phần tử tại chỉ mục tương ứng với nhau và sau đó chúng tôi in từng phần tử. Điều này thực hiện công việc in dọc.

# Python3 code to demonstrate
# Vertical list print
# using zip()

# initializing list
test_list = [[1, 4, 5], [4, 6, 8], [8, 3, 10]]

# printing original list
print ("The original list is : " + str(test_list))

# using zip()
# to print list vertically
for x, y, z in zip(*test_list):
	print(x, y, z)

Output:

The original list is : [[1, 4, 5], [4, 6, 8], [8, 3, 10]]
1 4 8
4 6 3
5 8 10

Phương pháp số 2: Sử dụng phương pháp ngây thơ

Phương pháp ngây thơ có thể được sử dụng để in danh sách vít theo chiều dọc. Sử dụng các vòng lặp và in từng mục chỉ mục trong mỗi danh sách liên tiếp sẽ giúp chúng tôi hoàn thành nhiệm vụ này.

# Python3 code to demonstrate
# Vertical list print
# using naive method

# initializing list
test_list = [[1, 4, 5], [4, 6, 8], [8, 3, 10]]

# printing original list
print ("The original list is : " + str(test_list))

# using naive method
# to print list vertically
for i in range(len(test_list)):
	for x in test_list:
		print(x[i], end =’ ’)
	print()

Output:

The original list is : [[1, 4, 5], [4, 6, 8], [8, 3, 10]]
1 4 8 
4 6 3 
5 8 10 

Làm thế nào để hiển thị một danh sách theo chiều dọc?

Câu hỏi stackoverflow

Tôi có một danh sách các chữ cái và muốn có thể hiển thị chúng theo chiều dọc như vậy:

a g m
b h n
c i o
d j p
e k 
f l 
0

Mã này chỉ hiển thị chúng như thế này:

a g m
b h n
c i o
d j p
e k 
f l 
1

Answer:

Điều đó bởi vì bạn đã in chúng trong các dòng riêng biệt. Mặc dù bạn đã cung cấp cho chúng tôi đủ thông tin về cách bạn thực sự muốn in chúng, tôi có thể suy luận rằng bạn muốn nửa đầu trên cột đầu tiên và nửa thứ hai trên colum thứ hai.

Chà, điều đó không dễ, bạn cần phải suy nghĩ trước một chút và nhận ra rằng nếu bạn tính toán một nửa danh sách và giữ nó:

a g m
b h n
c i o
d j p
e k 
f l 
8 bạn có thể lặp lại với biến
a g m
b h n
c i o
d j p
e k 
f l 
9 qua nửa đầu của danh sách và in trong cùng một dòng
for t in table(lets, 2):
    print(*t)  
0 và
for t in table(lets, 2):
    print(*t)  
1 đúng không? Một cái gì đó như thế này:

a g m
b h n
c i o
d j p
e k 
f l 
2

Bạn có thể dễ dàng khái quát nó cho các danh sách mà không có độ dài cặp, nhưng điều đó thực sự phụ thuộc vào những gì bạn muốn làm trong trường hợp đó.

Điều đó đang được nói, bằng cách sử dụng Python, bạn có thể đi xa hơn :). Nhìn vào mã này:

a g m
b h n
c i o
d j p
e k 
f l 
3

Điều này sẽ xuất hiện như sau trong Python 3:

a g m
b h n
c i o
d j p
e k 
f l 
4

Những gì tôi vừa làm là hình thành các bộ dữ liệu với chức năng

for t in table(lets, 2):
    print(*t)  
2 nhóm hai nửa của danh sách.

Để hoàn thiện, nếu một ngày nào đó, danh sách của bạn không có độ dài cặp, bạn có thể sử dụng

for t in table(lets, 2):
    print(*t)  
3 hoạt động ít nhiều giống như
for t in table(lets, 2):
    print(*t)  
2 nhưng lấp đầy với giá trị mặc định nếu cả hai lần lặp lại có cùng kích thước.

Hi vọng điêu nay co ich!

Làm cách nào để in theo chiều dọc?

Xoay thủ công các trang khi in..
Chọn Tệp> In ..
Trong khu vực xử lý trang của hộp thoại in, tự động rút tự động và trung tâm ..
Nhấp vào nút Thiết lập trang ở góc dưới bên trái của hộp thoại In ..
Chọn định hướng trang mới và bấm OK ..
Bấm OK để in ..

Làm thế nào để bạn nhập một danh sách dọc trong Python?

Giả sử input_list là một hàm trả về danh sách, bạn có thể viết mã như thế này (bạn không cần 3 dòng ở đó): number = input_list (); vertical_list = ',' .join (str (phần tử) cho phần tử trong số) - mặc dù biến vertical_list không phải là chuỗi "ngang" được phân tách bằng dấu phẩy ....numbers = Input_list(); vertical_list = ', '. join(str(element) for element in numbers) - though the vertical_list variable is not a comma separated "horizontal" string....

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

Để in một danh sách trong các cột: Sử dụng hàm zip () để lấy một đối tượng zip của Tuples. Sử dụng một chuỗi được định dạng để định dạng các mục trong mỗi tuple trong một hàng. Sử dụng hàm in () để in kết quả.Use the zip() function to get a zip object of tuples. Use a formatted string literal to format the items in each tuple in a row. Use the print() function to print the result.

Làm thế nào để bạn in các đường thẳng trong Python?

Để in trên cùng một dòng trong Python, thêm một đối số thứ hai, end = '', vào lệnh gọi hàm in ().add a second argument, end=' ', to the print() function call.