gpt4 book ai didi

python - 如何排列打印元组中的内容

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:13 25 4
gpt4 key购买 nike

我正在尝试安排元组中的内容以适合特定的列布局。

示例布局:

PETER PAUL            MALE            100000
MARGARET FEMALE 1000
MICHAEL JORDAN MALE 1
AGNES FEMALE 200

但是当我遍历元组打印内容时,它输出:

PETER PAUL            MALE            100000
MARGARET FEMALE 1000
MICHAEL JORDAN MALE 1
AGNES FEMALE 200

还有当我return row , 它只返回第一个 tuple而不是全部。我将其归还,因为我想在另一个函数中使用它。

这是下面的代码:

def text():
rows = (("PETER PAUL", "MALE", "100000"), ("MARGARET ", "FEMALE", "1000"), ("MICHAEL JORDAN", "MALE", "1"),("AGNES", "FEMALE", "200"))

for row in rows:
# print(" ".join(row))
print("".join(row[0]), "".join(" "), "".join(row[1]), "".join(" "), "".join(row[2]))
#return row

text()

我使用 join方法,但我找不到 ljust ,我认为在 python3 中不再可用.

最佳答案

使用Python的字符串.format()给你的每个元素一个固定的宽度:

def text():
rows = (("PETER PAUL", "MALE", "100000"), ("MARGARET ", "FEMALE", "1000"), ("MICHAEL JORDAN", "MALE", "1"),("AGNES", "FEMALE", "200"))

for row in rows:
print('{:20} {:8} {}'.format(*row))

text()

给你:

PETER PAUL           MALE     100000
MARGARET FEMALE 1000
MICHAEL JORDAN MALE 1
AGNES FEMALE 200

format() 命令的工作原理是将字符串中看到的每个 {} 替换为传递给它的参数,在本例中为 *row* 的作用是将 row 中的三个值扩展为需要扩展的三个参数。


要返回格式化文本,您需要先创建一个格式化行列表,然后使用 '\n'.join() 将它们连接在一起,最后换行:

def text():
rows = (("PETER PAUL", "MALE", "100000"), ("MARGARET ", "FEMALE", "1000"), ("MICHAEL JORDAN", "MALE", "1"),("AGNES", "FEMALE", "200"))

data = []

for row in rows:
data.append('{:20} {:8} {}'.format(*row))

return '\n'.join(data)

print(text())

这也可以使用 Python“列表理解”非常巧妙地完成,如下所示:

def text():
rows = (("PETER PAUL", "MALE", "100000"), ("MARGARET ", "FEMALE", "1000"), ("MICHAEL JORDAN", "MALE", "1"),("AGNES", "FEMALE", "200"))
return '\n'.join('{:20} {:8} {}'.format(*row) for row in rows)

print(text())

关于python - 如何排列打印元组中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49159217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com