maxliu06 发表于 2020-1-11 12:06:07

求列表输出对齐的方法

例如我有列表,要求输出 时是 左对齐 或右对齐

list1=[('李白','床前明月光','10'),
        ('中华人民共和国','民主','abcdkthjeu')]


for i in date:
        print(i,i)


zltzlt 发表于 2020-1-11 12:24:33

说清楚你想实现什么效果,别让我们猜。

maxliu06 发表于 2020-1-11 13:36:27

zltzlt 发表于 2020-1-11 12:24
说清楚你想实现什么效果,别让我们猜。

代码输出结果是:
李白 床前明月光 10
中华人民共和国 民主 abcdkthjeu


我想要的结果是:
李白                      床前明月光       10
中华人民共和国      民主               abcdkthjeu

chenxueyuen 发表于 2020-1-13 06:37:42

首先,你的问题陈述很矛盾???
你应该先用css设置一个表格,
然后把字符串输入到表格内部,
在将字符串在表格内中心对齐,
或者向左对齐来引导其他同学

gywjj 发表于 2020-1-15 21:50:24

用个插件可以实现你的要求
from prettytable import PrettyTable
list1=[('李白','床前明月光','10'),('中华人民共和国','民主','abcdkthjeu')]
table = PrettyTable(["A","B","C"])
for i in list1:
    table.add_row(,i,i])
table.align="l"
table.border = 0
print(table)

XiaoPaiShen 发表于 2020-1-16 05:32:26

本帖最后由 XiaoPaiShen 于 2020-1-16 07:22 编辑

def print_chinese(str_sentence, width):
    hanzi_count = 0
    for char in str_sentence:
      if '\u4e00' <= char <= '\u9fff':
            hanzi_count += 1

    len_senrence = width - hanzi_count
    template = f'{str_sentence:<{len_senrence}}'
    print(template, end='')

list1=[('李白','床ab前明月光', '10', 'zhongwen'), ('中华人民共和国','民主', 'abcdkthjeu', '实验')]

for tup_item in list1:
    for item in tup_item:
      print_chinese(item, 20)
   
    print()

maxliu06 发表于 2020-1-16 10:20:26

gywjj 发表于 2020-1-15 21:50
用个插件可以实现你的要求
from prettytable import PrettyTable
list1=[('李白','床前明月光','10'),(' ...

非常感谢
页: [1]
查看完整版本: 求列表输出对齐的方法