迁移 – 将Python中动态,格式良好的表格数据转换为str.format()
发布时间:2020-12-20 11:20:35 所属栏目:Python 来源:网络整理
导读:我有以下 Python 2.x代码,它为表格数据生成标题行: headers = ['Name','Date','Age']maxColumnWidth = 20 # this is just a placeholderheaderRow = "|".join( ["%s" % k.center(maxColumnWidth) for k in headers] )print(headerRow) 此代码输出以下内容:
我有以下
Python 2.x代码,它为表格数据生成标题行:
headers = ['Name','Date','Age'] maxColumnWidth = 20 # this is just a placeholder headerRow = "|".join( ["%s" % k.center(maxColumnWidth) for k in headers] ) print(headerRow) 此代码输出以下内容: Name | Date | Age 这正是我想要的 – 数据格式很好,并以宽度maxColumnWidth的列为中心. (maxColumnWidth在程序的早期计算) 根据the Python docs,您应该能够在Python3中使用大括号字符串格式执行相同的操作,如下所示: headerRow = "|".join( ["{:^maxColumnWidth}".format(k) for k in headers] ) 但是,当我这样做时,我得到以下内容: ValueError: Invalid conversion specification 但是,如果我这样做: headerRow = "|".join( ["{:^30}".format(k) for k in headers] ) 一切正常. headerRow = "|".join( ["{:^maxColumnWidth}".format(k) for k in headers] ) 解决方法headers = ['Name','Age'] maxColumnWidth=21 headerRow = "|".join( "{k:^{m}}".format(k=k,m=maxColumnWidth) for k in headers ) print(headerRow) 产量 Name | Date | Age >您可以将宽度maxColumnWidth表示为{m},然后通过format参数替换该值.>无需在连接中使用括号(列表理解).一个生成器表达式(不带括号)就足够了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |