[英]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.