Python 具有可变长度列表的Format()
在完成codewars挑战时,我试图理解python中的format()函数。我的解决方案不像我使用if语句在特定位置插入电话号码格式那样优雅 最重要的答案是:Python 具有可变长度列表的Format(),python,string,list,Python,String,List,在完成codewars挑战时,我试图理解python中的format()函数。我的解决方案不像我使用if语句在特定位置插入电话号码格式那样优雅 最重要的答案是: def create_phone_number(n): return "({}{}{}) {}{}{}-{}{}{}{}".format(*n) 我知道format()将用您输入的任何参数替换每个大括号,并且列表长度不能小于大括号的数量。format()函数如何知道从n[0]开始遍历每个位置的列表,并在没有
def create_phone_number(n):
return "({}{}{}) {}{}{}-{}{}{}{}".format(*n)
我知道format()将用您输入的任何参数替换每个大括号,并且列表长度不能小于大括号的数量。format()函数如何知道从n[0]开始遍历每个位置的列表,并在没有变量放入正在格式化的字符串时替换空的大括号?
*
在n用于解包之前。这意味着它被转换为一系列参数。在字符串“1234”
的情况下,将其解压为字符“1”、“2”、“3”、“4”
如果所有花括号都为空,则它们将隐式地用索引填充
因此,“({}{}{}{}{}{}{}-{}{}{}{}{}{}”。格式(*n)
相当于
“({0}{1}{2}){3}{4}{5}-{6}{7}{8}{9}”。格式(*n)
索引的花括号将替换为format方法的相应参数。这意味着,如果手动向花括号中添加索引,则可以更改参数在字符串中的显示顺序,甚至可以多次插入相同的参数
您可以在文档中阅读更多信息,因为它什么都不知道
*n
将列表/元组解压为.format()
函数的多个参数,空的{}
表示“打印下一个参数”。@z3ke是您的问题“当您提供长度小于10的*n时会发生什么?这不是OP要求的。我现在看到了。我认为已修复。”。