[英]Python Generate a lexicographic ordered output from array of strings
我正在開發一個 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.