在列表中插入默认值以使其具有固定长度

时间:2017-08-01 10:28:07

标签: python-2.7 list

列表可以是最大长度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")

请帮助我以优雅的方式实现这一目标。

2 个答案:

答案 0 :(得分:0)

您可以通过List Comprehensions以更易读的方式实现这一目标:

IEnumerable

结果:

IEnumerable<T>

答案 1 :(得分:0)

您可以使用+运算符连接列表,并将列表乘以整数以重复该次数。将这两件事结合在一起,你可以做到:

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

如果您需要进行适当的修改,可以进行切片分配而不是连接:

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