我遇到了一个相当小的for循环问题。我正在尝试在Excel工作表中创建一些列的列表,并使用以下代码:
import string
col_list = list(string.ascii_uppercase)
for i in col_list:
a = 'A' + i
col_list.append(a)
print col_list
我收到以下错误:
Traceback (most recent call last):
File ".../table.py", line 5, in <module>
a = 'A' + i
MemoryError
我想要的输出是来自['A','B','C',...,'AX','AZ']的列表
有人可以帮我理解这里发生了什么吗?谢谢。
答案 0 :(得分:6)
当您循环遍历列表时,您将添加到列表中,因此循环永远不会结束。尝试制作一份清单:
for i in list(col_list):
a = 'A' + i
col_list.append(a)
答案 1 :(得分:2)
你在迭代它时不应该向list
添加元素,因为它会导致你的循环永远不会终止,而是你可以使用列表理解:
import string
['A' + i for i in string.ascii_uppercase]
另请注意,由于字符串是可迭代的,因此无需将string.ascii_uppercase
转换为列表。