我正在开发一个 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']
最佳答案
在 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
关于Python 从字符串数组生成字典顺序输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54733435/