不幸的是, * 或 ** 运算符的变化似乎无法使用:
lstData = [1,2,3,4]
str = 'The %s are %d, %d, %d, and %d' % ('numbers', *lstData)
有没有简单的方法?
不幸的是, * 或 ** 运算符的变化似乎无法使用:
lstData = [1,2,3,4]
str = 'The %s are %d, %d, %d, and %d' % ('numbers', *lstData)
使用格式化字符串:
str = 'The {} are {}, {}, {}, and {}'.format('numbers', *lstData)
请参考文档以了解更多有关可能的格式化(浮点数、小数点、转换等)的详细信息。
s = 'The %s are %d, %d, %d, and %d' % tuple(['numbers'] + lstData)
>>> data = range(5)
>>> 'The {0} are {1}, {2}, {3}, {4} and {5}'.format('numbers', *data)
'The numbers are 0, 1, 2, 3 and 4'
format(positional, *args, **kwargs)
吗?如果你可以传递(*seq1, *seq2, *...)
,它将会更加强大。JavaScript ES6 支持这种方式:Math.min(...[...seq1, ...seq2])
。 - CodeManXstr.format(*args, **kwargs)
。据我理解,这些参数在传递给函数之前会被解包。你可以解包任意多个列表,但它们都将被分配到函数中的同一个参数列表中。在上面的示例中,'numbers'
和*listData
都将作为同一元组的一部分传递到*args
中。 - bindsniper001min(*args)
的函数。你可以通过将任意多个序列传递给它来调用这样的函数,例如:min(*seq1, *seq2, *seq3)
。 - bindsniper001