向用户询问列表的长度(n)。生成n个整数的线性列表。在每个偶数值后插入零。打印新列表

时间:2019-05-29 22:12:36

标签: python-3.x list

我应该要求用户输入一个数字,然后打印之前的所有数字,但是,我必须在每个偶数之后插入一个0。 我是Python的初学者,所以我不太了解。

n=0
length_even=[]
length_odd=[]

def length_list(n):
    length=int(input('Enter the length of the list: '))
    for i in range(1,length+1):
        if(i%2 != 0):
            length_odd.append(i)
        elif(i%2 == 0) :
            length_even.append(i)
            length_even.insert(i,0) 

    total=length_odd+length_even
    return total

length_list(n)

如果用户输入5,我希望输出为[1,2,0,3,4,0,5],但是实际输出为(1,3,5,2,0,4,0 ]。

1 个答案:

答案 0 :(得分:0)

问题在于,在将值添加到每个列表(length_odd包含:+和length_even包含:)后,您创建了两个独立的列表(length_even和length_odd)并连接(1,3,5运算符)。 2,0,4,0)。因此,您得到的结果是:1,3,5,2,0,4,0。您为什么不只使用一个列表?看看下面的代码(为了避免混淆,我仅作了些微改动):

 n=0
 lengthList = []

 def length_list(n):
     length=int(input('Enter the length of the list: '))
     for i in range(1,length+1):
         if(i%2 != 0):
             lengthList.append(i)
         elif(i%2 == 0) :
             lengthList.append(i)
             lengthList.append(0) 

     return lengthList

length_list(n)