2017-08-01 11 views
0

リストは最大長でもかまいません4.最大長に足りないときは常に、リストの先頭に「デフォルト値」を挿入します。 例:私のようにそれをやっているリストにデフォルト値を挿入して固定長にします

input = [1,2] 
output= ["default value","default value",1,2] 

input[1,2,3] 
output = ["default value",1,2,3] 

if len(score_list) == 3: 
    score_list.insert(0,"did not file") 
if len(score_list) == 2: 
    score_list.insert(0,"did not file") 
    score_list.insert(1,"did not file") 
if len(score_list) == 1: 
    score_list.insert(0,"did not file") 
    score_list.insert(1,"did not file") 
    score_list.insert(2,"did not file") 
if len(score_list) == 0: 
    score_list.insert(0,"did not file") 
    score_list.insert(1,"did not file") 
    score_list.insert(2,"did not file") 
    score_list.insert(4,"did not file") 

は、エレガントな方法でこれを達成するために私を助けてください。

答えて

0

あなたは、より読みやすい形でList Comprehensionsとそれを達成することができます

score_list = [1, 2] 

score_list = ["did not file" for x in range(4)][len(score_list):] + score_list[:4] 

print score_list 

結果:

input = [] 
output = ['did not file', 'did not file', 'did not file', 'did not file'] 

input = [1, 2] 
output = ['did not file', 'did not file', 1, 2] 

input = [1, 2, 3, 4, 5] 
output = [1, 2, 3, 4] 
0

あなたは+オペレータとのリストを連結し、それを繰り返すように整数でリストを掛けることができますその回数。一緒に、これら二つを組み合わせることで、あなたが行うことができます:

score_list = ["did not file"]*(4-len(score_list)) + score_list 

あなたの場所で変更を行う必要がある場合は、代わりに連結のスライスの割り当てを行うことができます:

score_list[:0] = ["did not file"] * (4-len(score_list)) 
関連する問題