在python中,如何将不同数量的参数从元组传递到字符串格式?

在python中,如何将不同数量的参数从元组传递到字符串格式?,python,format,tuples,Python,Format,Tuples,我在将不同数量的参数从元组传递到字符串格式时遇到了困难。 有时我的元组只包含一个值,但有时最多包含10个值。 如果我想打印print语句中的所有值,我该怎么做? 我试过: tup = ('val1', 'val2', 'val3') print('List consists of: {}'.format(*tup)) 但它只打印出第一个值。不幸的是,每次我都有不同数量的参数要打印。请删除*以便不解压缩元组: tup = ('val1', 'val2', 'val3') print('List

我在将不同数量的参数从元组传递到字符串格式时遇到了困难。 有时我的元组只包含一个值,但有时最多包含10个值。 如果我想打印print语句中的所有值,我该怎么做? 我试过:

tup = ('val1', 'val2', 'val3')
print('List consists of: {}'.format(*tup))

但它只打印出第一个值。不幸的是,每次我都有不同数量的参数要打印。

请删除*以便不解压缩元组:

tup = ('val1', 'val2', 'val3')
print('List consists of: {}'.format(tup))
输出:

List consists of: ('val1', 'val2', 'val3')

python函数定义中的特殊语法
*args
*mystrings
)用于向函数传递可变数量的参数。它用于传递一个非关键字、可变长度的参数列表

这里的好处是,python将它们作为
元组传递,这使其成为
经典和海峡前进的方法。请参见下面的
代码片段
中的此方法:

def foo(*mystrings): ## which ofen used as *args
    for string in mystrings:
    print(string)    ## Or do what ever you want.
现在叫它:

tup = ('val1', 'val2', 'val3')
foo(tup)
如果只想从
元组构建字符串,可以使用
join()
方法执行此操作:

strt=' '.join(tup)
str.join(可编辑)


返回一个字符串,该字符串是iterable中字符串的串联。如果iterable中有任何非字符串值,包括bytes对象,则会引发TypeError。元素之间的分隔符是提供此方法的字符串。

在本例中,您不需要
.format()
.join()
。只需将
*tup
作为提示传递到打印功能:

>>> tup = ('h', 'e', 'l', 'l', 'o', 'world')
>>> print(*tup)
h e l l o world
它也适用于数字

tup = (1, 2 ,3)

print('List consists of:', *tup)
如果需要,可以添加分隔符

print('List consists of:', *tup, sep=', ')

在多个字符串的情况下加入它们
.format(“,”.join(tup))
谢谢,这对我的情况非常有效。您好,谢谢,如果我有小数,这个解决方案会有效,但在我的情况下,我的元组中有字符串。我已经更新了我的答案,以显示它对字符串有效。谢谢,但我想避免使用括号和引号。谢谢,
“”。join(tup)
解决方案对mewelcome非常有效。如果觉得有用,请投票支持我的答案,并在答案的左边按v选择答案。最令人沮丧的是,这个网站允许未经解释的人投票否决答案。这将被社区阻止。
print('List consists of:', *tup, sep=', ')
[OUTPUT]: List consists of: 1, 2, 3