python中以字符串格式设置的拆包仅返回第一个值

时间:2019-06-21 08:31:34

标签: string-formatting python-3.7 python-docx argument-unpacking

我已经将DataFrame列转换为一个集合,并且我试图使用*将值格式化为字符串,以像列表一样将其解压缩。但是,它仅返回第一个值。

我正在使用python-docx根据数据自动创建报告。

此代码选择DataFrame的一列,删除空白值并将其转换为一组。这个想法是消除重复。下一步使用格式功能将集合输入到字符串或报告中:

set_unique_statgroup = set(self.internal_df.StatGroup.dropna())

self.document.add_paragraph("{} categories have been found, and they are: {}".format(len(set_unique_statgroup), *set_unique_statgroup)

代码返回以下句子:

“已找到12个类别,分别是:温度”

我希望它会显示集合中的所有项目:

“已找到12个类别,它们是:温度,情绪,一天中的时间(...)”

1 个答案:

答案 0 :(得分:0)

我找到了一种解决方法,可能不是最pythonic的:

使用循环和add_run函数将集合中的每个项目添加到段落中:

for item in set_unique_statgroup:
    p.add_run("{}".format(item))

p.add_run(".")

如果有人有更紧凑/ pythonic的方法,请随时发布。