我正在研究一个Python(3)程序,其中我必须编写一个函数来生成输出,该输出将按字典顺序排列为字符串列表。
这是一个例子:
如果我们传递一个类似??2??00
的字符串,我将其称为pattern
,则它必须用一个整数替换问号,例如1
,而名为scheule
的关键字表示?
的数量,并生成如下所示的输出:
0020100
0021000
0120000
1020000
,这是我尝试过的:
因此,如果pattern= '??2??00'
和scheule=4
那么:
for ind, p in enumerate(pattern):
if p == '?':
s = pattern[ind].replace('?', str(scheule))
available_schedule.append(s)
break
else:
continue
它不会生成所需的输出,但是它是这样生成的:
['1', '2', '2', '3', '4', '4', '4']
答案 0 :(得分:2)
在Python中,如果枚举str
,则会获得一个字符列表(长度为1的字符串)。这样的输出。
str.replace()
将不执行任何操作,否则将替换所有出现的模式。
此片段产生所需的输出:
pattern = '??2??00'
pattern_pos = [i for i, c in enumerate(pattern) if c == '?']
schedule = '1'
result = pattern.replace('?', '0')
for i in reversed(pattern_pos):
print(''.join([result[:i], schedule, result[i+1:]]))
输出:
0020100
0021000
0120000
1020000