2017-08-01 100 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))