以 python 中的字符串格式解包仅 returns 第一个值

Unpacking set in string format in python only returns first value

我已将一个 DataFrame 列转换为一个集合,我正在尝试使用 * 将这些值格式化为一个字符串,以便像列表一样解压它。但是,它只有 returns 第一个值。

我正在使用 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)

代码returns下面一句话:

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

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

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

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

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

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

p.add_run(".")

如果有人有更compact/pythonic的方法,请随时post。