2017-08-02 18 views
1

私はテンプレートの入力を必要とするものを作っています。Pythonで定義済みのテンプレートから可能な組み合わせのリストを作成するには

私は

私は上記のすべてのテンプレートのために使用することができる答えを望んでいるので、私はテンプレートの多くを持って生成されたテンプレート

[ "Catman001","Catman002","Catman003","Catman004",....,"Catman999" ] 
[ "01Catman01","01Catman02","01Catman03","01Catman04",...,"02Catman01","02Catman02"] 
[ "ProAGamer","ProbGamer","ProCGamer","ProDGamer",.....,"ProZGamer"] 
[ "XxGamerAxX_01","XxGamerAxX_02","XxGamerAxX_03",.....,"XxGamerBxX_01","XxGamerBxX_02",.....,"XxGamerZxX_99"] 

の可能性の大規模が必要

Template = Catman{} 
CompleteList = [] 

for i in range(1000): 
    CompleteList.append("Template".format(Template,i)) 

print CompleteList 

は数字でのみ動作します。

そして

Template = "Pro{}Gamer" 

CompletedList = [] 

AToZ = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] 
atoz = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] 

for Alphab in AToZ: 
    CompletedList.append(Template.format(Alphab)) 
for Alphab in atoz: 
    CompletedList.append(Template.format(Alphab)) 

print CompletedList 

は、唯一の文字で動作します。残っている人のために

AToZ = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] 
atoz = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] 
Nums = ["0","1","2","3","4","5","6","7","8","9"] 

Template = raw_input("Type In The Template") 
Template = "XxGamer#xX_%%" 

CompletedList = [] 

''' 
# = Capital Letter 
$ = Non Capital Letter 
% = Numbers 
''' 

def TemplateCombination(Template,CompletedList): 
    if ("#" in Template): 
     # Adds All Possible Combinations Of Capital Letters 
    if ("$" in Template): 
     # Add All Possible Combinations Of Non Capital letters 
    if ("%" in template): 
     # Add All Possible Combinations Of Numbers 
    return CompletedList 

TemplateCombination(Template,CompletedList) 

print CompletedList 

:あなたは私が作ったいくつかの例を見ている場合

、それはそのためにすべての可能な組み合わせのリストを作成し、私は、コードを望んでいることは、このようなものです私は、例えば

Input : "Test%Section" 

出力すべき

OutPut : [ "Test1Section","Test2Section","Test3Section","Test4Section","Test5Section","Test6Section","Test7Section","Test8Section","Test9Section"] 
、既成のテンプレートから可能な組み合わせで満たされたリストを作成しようとしている混乱しました

私の問題は私がそれを行う方法を知らないということです。

+1

、あなたは[ 'itertools.product'](https://docs.python.org/3/library/itertools.html#で行うことができますデカルト積を、したいですitertools.product)。ところで、あなたはPython 2ではなく、Python 3を学ぶべきです。 –

+1

ヒント:あなたは '' atoz'でascii_lowercaseから '' AToZ''と 'Nums = range(10)' 'でアスキー文字列import ascii_uppercaseから行うことができます –

答えて

1

#$に対応する関数を記述できます。
また、拡張機能を拡張することもできます。複数の項目の組み合わせについては

def expand_nums(to_expand): 
res = list() 
for n in range(0,10): 
    g = re.sub(r'%', str(n), to_expand, 1) 
    res.append(g) 

return res 

res = ['asd%kk%lk%lk%zz'] 
while res[0].find('%') != -1: 
    rres = list() 
    for r in res: 
     rres += expand_nums(r) 
    res = rres 

print(rres) 
+0

あなたは修正する必要がありますインデント –

+0

ありがとうございます –

関連する問題