试图写For-While循环,不工作

时间:2014-03-27 03:12:50

标签: python list numbers append

这是我的第一个问题,所以如果需要重新调整或转移到其他部分,我很抱歉。

我正在尝试编写一个循环,将1-4中的数字附加到list1中的每个字符串,并将这些新字符串放入list2中。以下是我到目前为止所做的事情:

number = 0
list1 = ["a","b","c"]
list2=[]
for item in list1:
    while number < 5:
        list2.append(str(item)+str(number))
        number = number + 1

我对下一步做什么感到很遗憾。任何帮助,将不胜感激。

P.S。现在,如果我这样做     打印清单2 它输出     ['a0','a1','a2','a3','a4']。我想要发生的是

print list2

['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4', 'c1', 'c2', 'c3', 'c4']

3 个答案:

答案 0 :(得分:1)

问题是您已在number循环之外初始化for。因此,即使for中的所有项都执行了list1,因此条件为false时,while也不会对后续项执行。

list1 = ["a","b","c"]
list2=[]
for item in list1:
    number = 1       # You need to reset number within the loop, not outside!
    while number < 5:
        list2.append(str(item)+str(number))
        number = number + 1
print list2

产地:

['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4', 'c1', 'c2', 'c3', 'c4']

答案 1 :(得分:1)

作为其他答案的替代方案,您也可以使用list comprehension来获得所需的结果:

list1  = ['a','b', 'c']
number = 5
list2  = [ '%s%s' % (item, i+1) for item in list for i in range(0,number) ]
print list2

可生产

['a1', 'a2', 'a3', 'a4', 'a5', 'b1', 'b2', 'b3', 'b4', 'b5', 'c1', 'c2', 'c3', 'c4', 'c5']

答案 2 :(得分:0)

试试这个:

number = 5
list1 = ["a","b","c"]
list2=[]
for item in list1:
    for i in range(1,number ):
        list2.append(str(item)+str(i))

print list2

输出:

['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4', 'c1', 'c2', 'c3', 'c4']

您共享的代码需要以下编辑:

list1 = ["a","b","c"]
list2=[]
for item in list1:
    number = 1    
    while number < 5:
        list2.append(str(item)+str(number))
        number = number + 1

print list2