2024-03-29 00:27:32 发布
网友
给定一个像12345678910这样的数字,我想输出number id 123.456.789-10。你知道吗
12345678910
number id 123.456.789-10
我试过这个:
print('number id {0:1.3}.{0:1.3}.{0:1.3}-{0:1.3}'.format("12345678910"))
但结果是number id 123.123.123-123。如何正确操作?你知道吗
number id 123.123.123-123
这是实现您期望的目标的一种方法:
number = "12345678910" print( 'number id {0}.{1}.{2}-{3}'.format( *[number[i:i+3] for i in range(0,len(number), 3)] ) ) #number id 123.456.789-10.
你的代码有一些问题。首先,"{0...}"中的第一个数字表示format()函数中的位置参数。在您的例子中,您使用的是all0,它只引用第一个参数。这就是为什么相同的子串被重复了一遍又一遍。(注意我是如何把它改成{0}.{1}...{3}。)
"{0...}"
format()
0
{0}.{1}...{3}
我将*[number[i:i+3] for i in range(0,len(number), 3)]传递给format函数,它只是将字符串分成3块。你知道吗
*[number[i:i+3] for i in range(0,len(number), 3)]
print([number[i:i+3] for i in range(0,len(number), 3)]) #['123', '456', '789', '10']
*操作符执行argument unpacking,它将列表的元素按顺序传递给format()。你知道吗
*
更新:
作为@user2357112mentioned in the comments,在本例中,实际上不需要在大括号中使用任何内容。只需使用{}来表示占位符。你知道吗
{}
print( 'number id {}.{}.{}-{}'.format( *[number[i:i+3] for i in range(0,len(number), 3)] ) )
这是实现您期望的目标的一种方法:
你的代码有一些问题。首先,
"{0...}"
中的第一个数字表示format()
函数中的位置参数。在您的例子中,您使用的是all0
,它只引用第一个参数。这就是为什么相同的子串被重复了一遍又一遍。(注意我是如何把它改成{0}.{1}...{3}
。)我将
*[number[i:i+3] for i in range(0,len(number), 3)]
传递给format函数,它只是将字符串分成3块。你知道吗*
操作符执行argument unpacking,它将列表的元素按顺序传递给format()
。你知道吗更新:
作为@user2357112mentioned in the comments,在本例中,实际上不需要在大括号中使用任何内容。只需使用
{}
来表示占位符。你知道吗相关问题 更多 >
编程相关推荐