Python - 创建一个方法的动态参数列表

3
我想在Python中创建一个XLSX文件。为此,我使用xlsxwriter
在我的XLSX文件中,我想使用write_rich_string方法突出显示一些文本部分。
但是,我的字符串不是固定值。我想要突出显示的部分可能随机放置在其中。或者我可以有多个要突出显示的文本部分。
那么,我能否为调用write_rich_string创建一个“参数列表”?如何实现这个方法?
例如:
mystring = "I want this in [tag_1]yellow[/tag_1] and this in [tag_2]green[/tag_2]."

worksheet.write_rich_string('A1',
                        'I want this in',
                        yellow, 'yellow',
                        ' and this is ',
                        green, 'green')

worksheet.write_rich_string('A1', my_list_of_parm)

为了提供一些背景,这里是write_rich_string()的文档,它解释了如何格式化多格式“富”字符串。 - jmcnamara
1个回答

8
如果我理解你的问题...你有一个像这样的列表:
my_list_of_parm = ['I want this in',
                   yellow, 'yellow',
                   ' and this is ',
                   green, 'green']

如果你想将其作为一堆单独的参数(以及一个普通参数)传递给write_rich_string,则需要按照教程中解包参数列表的说明进行操作:只需在my_list_of_parm之前放置*,它就会被拆分成单独的参数:

worksheet.write_rich_string('A1', *my_list_of_parm)

通常,如果你想将列表(或其他可迭代对象)转换为单独的值或反之亦然,* 是答案:

>>> def func(a, b, *args):
...     print(args)
>>> func(1, 2, 3, 4, 5)
[3, 4, 5]
>>> a, b, *rest = [1, 2, 3, 4, 5]
>>> rest
[3, 4, 5]
>>> func(1, *rest)
[4, 5]

但是关于您可以做什么和不能做什么的确切规则,您需要阅读文档。


嘿 - 当你说“你必须阅读文档”时,你有没有关于我该去哪里搜索这些信息的提示.... 即使这个页面也是在谷歌搜索中尝试了很多次才找到的。 - lb_so

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接