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