wha*_*hat 0 python for-loop list python-3.x
我是Python的新手.我正在尝试用文件夹中的一堆图像的文件名填充列表.它们都以"frameinstance"开头,然后是0-40之间的数字,即"frameinstance0.png".我尝试了下面的代码,但是我收到了一个MemoryError错误.
filenamelist = []
i = 0
for i in range(0,40):
filenamelist = [str(filenamelist) + "frameinstance" + str(i)]
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个.我的输出很接近,但它不是一个列表.
filenamelist = []
i = 0
for i in range(0,40):
filenamelist = str(filenamelist) + "frameinstance" + str(i)
print(filenamelist)
Run Code Online (Sandbox Code Playgroud)
输出是: []frameinstance0frameinstance1frameinstance2frameinstance3frameinstance4frameinstance5frameinstance6frameinstance7frameinstance8frameinstance9frameinstance10frameinstance11frameinstance12frameinstance13frameinstance14frameinstance15frameinstance16frameinstance17frameinstance18frameinstance19frameinstance20frameinstance21frameinstance22frameinstance23frameinstance24frameinstance25frameinstance26frameinstance27frameinstance28frameinstance29frameinstance30frameinstance31frameinstance32frameinstance33frameinstance34frameinstance35frameinstance36frameinstance37frameinstance38frameinstance39
基本列表理解:
filenamelist = ["frameinstance{}".format(i) for i in range(41)]
Run Code Online (Sandbox Code Playgroud)
在第一个代码中,您总是filenamelist通过将其转换为更长和更长的字符串来更改值,该字符串最终在a上MemoryError.检查Ryan的答案以获取更多相关信息,特别是为什么它不会出现在第二个代码中.
在第二个代码,你把[]在filenamelist,然后用它串联"frameinstance" + str(i),所以在每次迭代,您连接"frameinstancei"在这个字符串的结尾.你最终会得到一个"[]"以"frameinstancei"40 开头的字符串.
但事情很少:
append方法.通常,写filenamelist.append("frameinstance{}".format(i))而不是filenamelist = ..."blah" + str(x) + "blah".相反,使用format方法:"blah{}blah".format(x).range(n)让你从整数0到n-1.因此,您的通话应该是range(0,41)代替range(0,40),而可能仅仅是range(41).| 归档时间: |
|
| 查看次数: |
3921 次 |
| 最近记录: |