Hướng dẫn how do you print a column of elements in a list in python? - làm cách nào để in một cột các phần tử trong danh sách bằng python?

Vì một sự mở rộng của @aMan dưới đây là một hàm lấy một danh sách các chuỗi và xuất ra chúng trong các cột dựa trên kích thước thiết bị đầu cuối.

import os
def column_display(input_list):
    '''
    Used to create a structured column display based on the users terminal size

    input_list : A list of string items which is desired to be displayed
    '''
    rows, columns = os.popen('stty size', 'r').read().split()
    terminal_space_eighth = int(columns)/8
    terminal_space_seventh = int(columns)/7
    terminal_space_sixth = int(columns)/6
    terminal_space_fifth = int(columns)/5
    terminal_space_quarter = int(columns)/4
    terminal_space_third = int(columns)/3
    terminal_space_half = int(columns)/2
    longest_string = max(input_list, key=len)
    longest_length = len(longest_string) + 1
    list_size = len(input_list)

    if longest_length > terminal_space_half:
         for string in input_list:
             print(string)
    elif terminal_space_eighth >= longest_length and list_size >= 8:
         for a,b,c,d,e,f,g,h in zip(input_list[::8],input_list[1::8],input_list[2::8], input_list[3::8], input_list[4::8], input_list[5::8], input_list[6::8], input_list[7::8]):
             column_space = '{:<%s}{:<%s}{:<%s}{:<%s}{:<%s}{:<%s}{:<%s}{:<}' % (longest_length, longest_length, longest_length, longest_length, longest_length, longest_length, longest_length )
             output = column_space.format(a,b,c,d,e,f,g,h)
             print(output)
    elif terminal_space_seventh >= longest_length and list_size >= 7:
        for a,b,c,d,e,f,g in zip(input_list[::7],input_list[1::7],input_list[2::7], input_list[3::7], input_list[4::7], input_list[5::7], input_list[6::7]):
             column_space = '{:<%s}{:<%s}{:<%s}{:<%s}{:<%s}{:<%s}{:<}' % (longest_length, longest_length, longest_length, longest_length, longest_length, longest_length)
             output = column_space.format(a,b,c,d,e,f,g)
             print(output)
    elif terminal_space_sixth >= longest_length and list_size >= 6:
         for a,b,c,d,e,f in zip(input_list[::6],input_list[1::6],input_list[2::6], input_list[3::6], input_list[4::6], input_list[5::6]):
             column_space = '{:<%s}{:<%s}{:<%s}{:<%s}{:<%s}{:<}' % (longest_length, longest_length, longest_length, longest_length, longest_length)
             output = column_space.format(a,b,c,d,e,f)
             print(output)
    elif terminal_space_fifth >= longest_length and list_size >= 5:
        for a,b,c,d,e in zip(input_list[::5],input_list[1::5],input_list[2::5], input_list[3::5], input_list[4::5]):
            column_space = '{:<%s}{:<%s}{:<%s}{:<%s}{:<}' % (longest_length, longest_length, longest_length, longest_length)
            output = column_space.format(a,b,c,d,e)
            print(output)
    elif terminal_space_quarter >= longest_length and list_size >= 4:
        for a,b,c,d in zip(input_list[::4],input_list[1::4],input_list[2::4], input_list[3::4]):
            column_space = '{:<%s}{:<%s}{:<%s}{:<}' % (longest_length, longest_length, longest_length)
            output = column_space.format(a,b,c,d)
            print(output)
    elif terminal_space_third >= longest_length and list_size >= 3:
        for a,b,c in zip(input_list[::3],input_list[1::3],input_list[2::3]):
            column_space = '{:<%s}{:<%s}{:<}' % (longest_length, longest_length)
            output = column_space.format(a,b,c)
            print(output)
    elif terminal_space_half >= longest_length and list_size >= 2:
        for a,b in zip(input_list[::2],input_list[1::2]):
            column_space = '{:<%s}{:<}' % longest_length
            output = column_space.format(a,b)
            print(output)

Như một lời giải thích này làm một vài điều khác nhau.

Đầu tiên, nó có số lượng cột cho thiết bị đầu cuối của người dùng hiện tại bằng Os.Popen. it gets the number of columns for the current user's terminal using os.popen.

Thứ hai, nó lấy số lượng cột và phân chia làm đôi, tăng lên thứ tám. Điều này sẽ được sử dụng để so sánh chuỗi dài nhất trong danh sách để xác định số lượng cột phù hợp nhất cho việc này. it takes the number of columns and divides in half, increasing to eighth. This will be used to compare the longest string in the list to determine the number of columns best suited for this.

Thứ ba là chuỗi dài nhất của danh sách được kéo bằng cách sử dụng bản dựng trong hàm Python Max (). is the longest string of the list pulled using the build in python function max().

Chiều dài của chuỗi dài nhất được thực hiện và sau đó có một cái được thêm vào nó để đệm. Độ dài của danh sách cũng được thực hiện để nếu danh sách nhỏ hơn 8 mục, nó sẽ chỉ liệt kê số lượng các mục tồn tại. the length of the longest string is taken and then has one added to it for padding. The length of the list is taken as well so that if the list is less than 8 items it will only list the number of items that exist.

Thứ năm, chiều dài chuỗi dài nhất được so sánh với từng khoảng trống từ một cột đến tám. Nếu cột lớn hơn hoặc bằng chiều dài thì nó có thể được sử dụng. Ví dụ: chuỗi dài nhất là 10 và các cột chia cho tám (terminal_space_eighth) là 8 nhưng các cột chia cho bảy (terminal_space_seventh) là 12, sẽ có bảy cột. Sẽ có bảy vì chuỗi dài nhất có thể phù hợp với 12 ký tự nhưng không phải là 8 ký tự. the longest string length is compared to each of the terminal spaces from one column to eight. If the column is greater than or equal to the length then it can be used. For example is the longest string is 10 and the columns divided by eight(terminal_space_eighth) is 8 but columns divided by seven(terminal_space_seventh) is 12, there will be seven columns. There will be seven because the longest string can fit in 12 characters but not in 8 characters.

Cũng đáng chú ý độ dài của danh sách được xem xét để ngăn chặn việc tạo nhiều cột hơn các mục danh sách.

Thứ sáu là một bản mở rộng của lời giải thích của @aMan: https://stackoverflow.com/a/1524132/11002603 is an expansion of the explanation by @Aman : https://stackoverflow.com/a/1524132/11002603

Lập chỉ mục cho phép tôi biểu diễn số được xác định theo kích thước đầu cuối vì lợi ích của ví dụ này. input_list[::i] Điều này chọn phần tử tại i. Thêm một số ở phía trước, chẳng hạn như input_list[1::i] bù đắp điểm bắt đầu (hãy nhớ Python coi 0 một số hợp lệ, đó là lý do tại sao nó không được sử dụng ban đầu.) Lets let i represent the number determined by terminal size for the sake of this example. input_list[::i] This selects element at i. Adding a number at the front such as input_list[1::i] offsets the starting point(remember python considers 0 a valid number which is why it's not used initially.)

Zipping

ZIP được sử dụng để tạo một tuple với các yếu tố của một danh sách. Ví dụ: danh sách đầu ra sẽ trông giống như bên dưới

zip([string1,string2,string3], [string4,string5, string6], [string7,string8,string9])
output : [(string1,string4,string7), (string2,string5, string8), (string3,string6,string9)]

Sử dụng cùng nhau tùy thuộc vào số lượng cột, các chữ cái chỉ được sử dụng để thể hiện sự phân chia. Vì vậy, ví dụ nếu chỉ có 5 cột phù hợp với thiết bị đầu cuối, sẽ được sử dụng sau đây Depending on the number of columns, the letters are just used to represent a split. So for example if only 5 columns fit in the terminal, the following will be used

for a,b,c,d,e in zip(input_list[::5],input_list[1::5],input_list[2::5], input_list[3::5], input_list[4::5]):

Điều này sẽ lấy các bộ dữ liệu được tạo từ zipping và lưu trữ sau đó dưới dạng các biến A, B, C, D và E để chúng ta có thể gọi chúng trong vòng lặp.

Không gian cột sau đó được sử dụng cho định dạng mỗi A, B, C, D và E thành các cột tương ứng và là nơi xác định độ dài của mỗi cột. Độ dài được dựa trên độ dài chuỗi được xác định ở trên.

Làm thế nào để bạn in một danh sách các yếu tố trên cùng một dòng trong Python?

Không sử dụng các vòng lặp: * Biểu tượng được sử dụng để in các phần tử danh sách trong một dòng duy nhất có không gian. Để 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 dấu phẩy sử dụng sep =, \ n, hoặc sep =, tương ứng.* symbol is use to print the list elements in a single line with space. To print all elements in new lines or separated by comma use sep=”\n” or sep=”, ” respectively.

Làm thế nào để bạn in số lượng các yếu tố trong một danh sách trong Python?

Sử dụng hàm Len () để có được số lượng các phần tử chúng ta có thể sử dụng hàm Len () để trả về số lượng các phần tử có trong danh sách. to Get the Number of Elements We can use the len( ) function to return the number of elements present in the list.

Làm cách nào để in một danh sách cạnh nhau 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 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.