在python中创建字符串模式
我有一个号码 num=5 我想创建一个问号模式,即“”(?,?,?,…n次),其中n是数字 在这种情况下,输出应该是包含5问号的字符串,用逗号分隔在python中创建字符串模式,python,python-3.x,Python,Python 3.x,我有一个号码 num=5 我想创建一个问号模式,即“”(?,?,?,…n次),其中n是数字 在这种情况下,输出应该是包含5问号的字符串,用逗号分隔 (?,?,?,?,?) #dtype str 我尝试了以下方法: q = '?' q2 = '('+q num = 5 for i in range(num-1): q2 += ','+q q3 = q2+')' print(q3) >>> (?,?,?,?,?) 但是它看起来很长很幼稚,有什么类似于蟒蛇的方法
(?,?,?,?,?) #dtype str
我尝试了以下方法:
q = '?'
q2 = '('+q
num = 5
for i in range(num-1):
q2 += ','+q
q3 = q2+')'
print(q3)
>>> (?,?,?,?,?)
但是它看起来很长很幼稚,有什么类似于蟒蛇的方法吗?最好是单衬里?试试以下方法:
s = '({})'.format(','.join('?' for _ in range(5)))
print(s)
输出
(?,?,?,?,?)
或:
解释
”,使用“
”,最后使用方法用括号包围它们'?'
组成的字符串(即'???'
),因为字符串是可编辑的,所以可以在联接中使用它们s = '({})'.format(','.join('?' for _ in range(5)))
print(s)
输出
(?,?,?,?,?)
或:
解释
”,使用“
”,最后使用方法用括号包围它们'?'
组成的字符串(即'???'
),因为字符串是可编辑的,所以可以在联接中使用它们>>> '('+','.join(num*["?"])+')'
'(?,?,?,?,?)'
您可以尝试:
>>> '('+','.join(num*["?"])+')'
'(?,?,?,?,?)'
给你
'(' + ','.join('?'*num) + ')'
给你
'(' + ','.join('?'*num) + ')'
我将使用f-string语法组装字符串,因为它允许在更基本的逻辑被整理后使用更高级别的抽象:
q = '?'
n = 5
s = ",".join(q*n) # You get a string without parenthesis: '?,?,?,?,?'
print(f'({s})') # Here you are adding the parenthesis
有几种方法可以做到这一点。最后,这一切都取决于可读性,有时还取决于性能。F-strings和.join()
都是构建字符串的有效方法
如果需要,可以将其合并为一个衬里:
q = '?'
n = 5
print(f'({",".join(q*n)})')
我将使用f-string语法组装字符串,因为它允许在更基本的逻辑被整理后使用更高级别的抽象:
q = '?'
n = 5
s = ",".join(q*n) # You get a string without parenthesis: '?,?,?,?,?'
print(f'({s})') # Here you are adding the parenthesis
有几种方法可以做到这一点。最后,这一切都取决于可读性,有时还取决于性能。F-strings和.join()
都是构建字符串的有效方法
如果需要,可以将其合并为一个衬里:
q = '?'
n = 5
print(f'({",".join(q*n)})')
q3=num*(“?”)
呼吁所有回答以下问题的人:虽然快速回答问题是好的,但只提供一行代码而不解释或记录是一种不好的做法。在未来的几年里,这个问题的访问者将阅读这里的答案。如果无法将未记录的解决方案扩展到类似和更复杂的问题,那么这些解决方案将不会有多大帮助。q3=num*(“?”)
对下面回答的所有人都有吸引力:虽然快速回答是好的,但只提供一行代码而不解释或记录是一种不好的做法。在未来的几年里,这个问题的访问者将阅读这里的答案。如果无法将未记录的解决方案扩展到类似和更复杂的问题,那么这些解决方案就没有多大帮助。提供解决方案而不解释或记录不是一个好方法。尝试解释你的解决方案。给出一个解决方案而不解释或记录它不是一个好方法。尝试解释你的解决方案。给出一个解决方案而不解释或记录它不是一个好方法。给出一个解决方案而不解释或记录它不是一个好方法。