马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
只要将下列代码中的 list1 列表换成您想要展开的列表,就可以运行了不然就运行的是默认值:list1 = [[-2,-1,0],[1,2,3],[4,5,6]]
string = ""
space_with_number = (len(str(max([each for each_row in list1 for each in each_row],key = lambda x:len(str(x)))))) * 2
space = []
for i in range(len(list1)):
space.append([int(space_with_number - len(each)) for each in [each_row for each_row in (" ".join([str(each) for each in [each for each_row in list1 for each in each_row][len([each for each_row in list1[:i + 1] for each in each_row]) - len(list1[i]):len([each for each_row in list1[:i + 1] for each in each_row])]]).split())]])
space = [each for each_line in space for each in each_line]
value = [str(each) for each_line in list1 for each in each_line]
i = 0
for x in zip(value,space):
if i % 3 == 0:
print()
print(x[0] + x[1] * " ",end = "")
i += 1
可能大家已经在别的地方看到过展开二维列表的代码了,但是我这个不一样!
为什么说不一样呢 —— 我的二维列表 list1 可以在里面加入不同长度的词,如:[[-2,-1,0],[1,2,3],[4,5,6]]
里面虽然元素的长度不统一,如 -2 和 0 ,但输出的结果却仍是可以对齐的:不会出现你们之前见到的程序的这样的结果出现不对齐的现象:
温馨提示:请不要试图去理解我的代码,你的脑子会爆掉的,里面全是列表推导式!!!
看在我的代码与众不同 —— 能自动对齐,就给个好评吧!!!
ps:实在是太难做了,列表推导式要在脑子里爆掉了 。还有,我不是写这么复杂的习惯,只是想尝试一下而已。 |