簡體   English   中英

Python從字符串數組生成字典序輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM