簡體   English   中英

如何在沒有 Pandas 的情況下轉置列表

[英]How to transpose a list without Pandas

list = ['AAA\ta\n', 'BBB\tb\n', 'CCC\tc\n', 'DDD\td\n', 'EEE\te\n', 'FFF\tf']

輸出:

AAA   a
BBB   b
CCC   c
DDD   d
EEE   e
FFF   f

我想在沒有 Pandas 的情況下轉置這個列表。 喜歡,所需的輸出:

AAA   BBB   CCC   DDD   EEE   FFF
 a     b     c     d     e     f

您應該首先剝離\\n的字符串並用\\t拆分它們。
一旦你有了你打印你的行:

input_list = ['AAA\ta\n', 'BBB\tb\n', 'CCC\tc\n', 'DDD\td\n', 'EEE\te\n', 'FFF\tf']

new_list = list(map(lambda x: x.strip().split("\t"), input_list))
nb_row = len(new_list[0])
for i in range(nb_row):
    print("\t".join([x[i].rjust((max(len(y) for y in x) + len(x[i]))//2) for x in new_list]))

rjust根據同一列中最長的文本將“單元格”的文本居中。
這是一個有趣的練習,但是一旦其中一個文本超過\\t的長度,您的輸出就會被搞亂(在此類任務中更喜歡使用熊貓):

AAA     BBB     CCC     DDD     EEE     FFF
 a       b       c       d       e       f

編輯:如果您想以與輸入相同的格式獲得輸出:

output = ["\t".join([x[i].rjust((max(len(y) for y in x) + len(x[i]))//2) for x in new_list]) + "\n" for i in range(nb_row)]

這給出:

['AAA\tBBB\tCCC\tDDD\tEEE\tFFF\n', ' a\t b\t c\t d\t e\t f\n']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM