首页 > 解决方案 > Python从字符串数组生成字典顺序输出

问题描述

我正在开发一个 Python(3) 程序,在该程序中我必须编写一个函数来生成一个输出,该输出将是按字典顺序排列的字符串列表。

这是一个例子:如果我们传递一个字符串,例如:??2??00我称之为 apattern那么它必须用一个整数替换问号,例如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']

标签: pythonpython-3.xlexicographiclexicographic-ordering

解决方案


在 Python 中,如果您枚举 a,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

推荐阅读