Python如何垂直打印含字符串与整数的列表,实现两列对齐输出
你直接打印子列表元素才会输出自带的括号和引号,拆分每个子列表的两个元素后用格式化字符串指定对齐规则即可实现需求,另外注意map是Python内置函数名,不建议作为自定义变量名使用,避免后续调用内置map时出现命名冲突。
方案1:固定宽度对齐(适配你当前的示例场景)
# 替换原变量名map为自定义名称 data = [["SG", 8], ["MY", 8], ["PH", 8], ["ID", 8], ["TH", 8]] for element in data: # :<8 表示第一列左对齐,占8个字符宽度 print(f"{element[0]:<8}{element[1]}")
运行后输出完全符合你的预期:
SG 8 MY 8 PH 8 ID 8 TH 8
方案2:动态宽度对齐(适配第一列字符串长度不固定的通用场景)
如果后续第一列的字符串长度有变化,可以先计算最长字符长度动态设置对齐宽度,无需手动修改固定值:
data = [["SG", 8], ["MY", 8], ["PH", 8], ["INDONESIA", 8], ["THAILAND", 8]] # 计算第一列最长字符串长度,加2作为列间距 max_col_width = max(len(item[0]) for item in data) + 2 for element in data: print(f"{element[0]:<{max_col_width}}{element[1]}")
运行后输出:
SG 8 MY 8 PH 8 INDONESIA 8 THAILAND 8
内容的提问来源于stack exchange,提问作者m4ti666
相关产品推荐
相关产品推荐

