python列表最大容量_列表中列的最大长度

从OP在问题中显示的示例来看,实际上表似乎是用字符串编码的,其中列被“|”除,行被“\n”除。在

有了这个设置(请,OP,在问题中解决它),在将表从字符串转换为实际列表列表之后,一种可能的方法是迭代每一行,并标识每列中每个元素的长度,并相应地更改大小。然后,用每列宽度的信息打印表的每个元素。在

在下面,实现算法一般描述的功能是(为了模块化和使操作更容易学习,对不同方面进行了分解):将字符串格式的表转换为列表,即行列表,每行包含一个字符串,其中实际元素位于给定列:def transform_string_to_list_of_lists(input_string):

rows = input_string.strip().split('\n')

list_of_lists = []

last_size = 0

for i, row in enumerate(rows):

row_list = [col.strip() for col in row[1:-2].split('|')]

if i == 0:

last_size = len(row_list)

else:

if len(row_list) != last_size:

print("Not a matrix")

return None

list_of_lists.append(row_list)

return list_of_lists

此功能中有三个不同的组件需要注意:字符串将从最后一个'\n'中删除,否则会导致额外的空行

行字符串去掉了第一个和最后一个“|”,每个元素也去掉了空白

检查每行的列数是否相同。在

找到每列的最大宽度,这将返回一个列表,该列表的大小为列数,并包含每个列的最大宽度:

^{pr2}$

请注意columns_size的初始化方式。还要注意的是,在实际创建列表时,会对表的一致性进行检查。

返回包含格式化表的字符串:def print_formatted_table(input_table, columns_width):

output_table_string = ""

for row in input_table:

for i, element in enumerate(row):

output_table_string = output_table_string + "| " + element.ljust(columns_width[i])

output_table_string += " |\n"

return output_table_string

注意^{}在字符串中添加一些尾随空格。

调用此类函数的示例如下:if __name__ == "__main__":

input_table_in_string = '| A | B |\n| CCC | DDD |\n'

input_table = transform_string_to_list_of_lists(input_table_in_string)

columns_width = find_each_column_width(input_table)

print(print_formatted_table(input_table, columns_width))

结果如下:| A | B |

| CCC| DDD |

请注意,如果提供了一个表列表,那么遍历该列表并调用此类函数以正确打印就足够了。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值