我正在尝试生成一个如下所示的列表:
list = [' a1',' a2',' a3',' a4',' a5' ,' a6',' a7',' a8',' a9'],[' b1',&# 39; b2',' b3',' b4',' b5',' b6',' b7&#39 ;,' b8',' b9'],[' c1',' c2',.........] ,...... [' f1',' f2',' f3',' f4',' f5',' f6',' f7',' f8',' f9']
我输入的代码如下:
rows = ['a','b','c','d','e','f']
newrow=[]
for i in rows:
print('')
for j in range(9):
newrow.append(i + str(j+1))
print(list(newrow))
显然我在这里遗漏了一些东西。
答案 0 :(得分:0)
你的语法错了。
您需要缩进for循环下面的内容。否则,它会完全跳过它,因为它不认为循环有任何体。
for i in range(1,10):
print("Do something");
不是
for i in range(1,10):
print("Do something");
上面的代码会打印一次。第一个例子将打印10次。
答案 1 :(得分:0)
只需将其作为列表理解
rows = ['a','b','c']
newrow = [[i+str(j) for j in range(1,10)] for i in rows]
列表推导通常比for循环更快,因为每次想要追加值时都不必查找列表。
答案 2 :(得分:0)
如果您想将每个字母维护为单独的列表(在第一个示例中保留括号),则需要为每个字母附加,然后为内部循环中的每个数字附加:
rows = ['a','b','c','d','e','f']
newrow = []
for i in range(len(rows)):
newrow.append([])
for j in range(9):
newrow[i-1].append(rows[i] + str(j+1))
print(list(newrow))
但我确实建议你查看列表理解,@ lordingtar的答案是嵌套列表理解,起初它们可能看起来很难,但是一旦你习惯了它们,它们真的很容易