这是我的第一个问题,所以如果需要重新调整或转移到其他部分,我很抱歉。
我正在尝试编写一个循环,将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']
答案 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