Python 生成带有字符串和数字的列表

Python 生成带有字符串和数字的列表,python,python-3.6,Python,Python 3.6,我正在尝试生成一个如下所示的列表: 列表=['a1','a2','a3','a4','a5','a6','a7','a8','a9'],['b1','b2','b3','b4','b5','b6','b7','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:

我正在尝试生成一个如下所示的列表:

列表=['a1','a2','a3','a4','a5','a6','a7','a8','a9'],['b1','b2','b3','b4','b5','b6','b7','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))
很明显,我遗漏了一些东西。

您的语法错误

您需要对for循环下面的内容进行缩进。否则,它会完全跳过它,因为它认为循环没有实体

for i in range(1,10):
    print("Do something");
不是


上面的代码将打印一次。第一个示例将打印10次

把它作为一个列表来做

rows = ['a','b','c']
newrow = [[i+str(j) for j in range(1,10)] for i in rows]

列表理解通常比for循环快,因为它不必在每次要追加值时都查找列表。

如果要将每个字母作为单独的列表来维护第一个示例中的括号,则需要为每个字母追加,然后为内部循环中的每个数字追加:

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的答案是嵌套列表理解,一开始它们可能看起来很难,但一旦你习惯了它们,它们就真的很容易了。

你只缺少newrow.appendi+strj+1行的缩进。很抱歉,缩进是我在这里键入的代码中的一个错误。我真的有。我需要的是一份清单。请注意a9和b1列表之间的方括号=['a1',a2',a3',a4',a5',a6',a7',a8',a9'],['b1',b2',b3',b4',b5',b6',b7',b8',b9'],['c1',c2',…],。。。。。。['f1',f2',f3',f4',f5',f6',f7',f8',f9']您的代码与我计算机上的缩进很好地配合。很抱歉,缩进是我在此处键入的代码中的错误。我真的有。我要找的是一份清单。请注意a9和b1之间的方括号。非常感谢。列表=['a1','a2','a3','a4','a5','a6','a7','a8','a9'],['b1','b2','b3','b4','b5','b6','b7','b8','b9'],['c1','c2',…],。。。。。。['f1',f2',f3',f4',f5',f6',f7',f8',f9']谢谢您提供的列表理解代码。我还没有掌握这些方面的最新进展。然而,我正在寻找的是一个列表列表。请注意a9和b1之间的方括号。如果您能使用列表理解方法向我展示此代码,我将不胜感激。非常感谢。列表=['a1','a2','a3','a4','a5','a6','a7','a8','a9'],['b1','b2','b3','b4','b5','b6','b7','b8','b9'],['c1','c2',…],。。。。。。['f1',f2',f3',f4',f5',f6',f7',f8',f9']更新了我的代码。如果答案正是你想要的,请接受。谢谢。那很好。
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))