【发布时间】:2017-03-08 15:34:10
【问题描述】:
我想从列表中读取特定数量的行并将所有这些值分配给新列表。然后我想从之前的 last_value+1 行中读取下一行的完全相同的行数,并将它们分配给一个新列表。到目前为止,我有这个:
假设u = [1,2,3....,9,10,11,12,13...,19,20],我想将u 中的前10 个值分配给我新生成的list1 = [] => list1 = [1,2,..9,10]
然后我希望将来自 u 的下 10 个值分配给 list2 所以 list2 = [11,12,13..,20]。到目前为止的代码是:
nLines = 10
nrepeats = 2
j=0
i=0
while (j<nrepeats):
### Generating empty lists ###
mklist = "list" + str(j) + " = []"
### do the segmentation ###
for i, uline in enumerate(u):
if i >= i and i < i+nLines:
mklist.append(uline)
j=j+1
现在的问题是,我不能追加到 mklist,因为它是一个字符串:
AttributeError: 'str' object has no attribute 'append'
如何在该循环中分配这些值?
【问题讨论】:
-
你真的希望一切都变成字符串吗?您不想以列表列表结尾吗?
-
if i >= i and i < i+nLines:这些is 应该是js 吗?照原样,此条件始终为真。 -
@PatrickHaugh 我打算这样做:
if i >= 0 and i < 10阅读这些行并附加它们。但是,我还没有弄清楚当它应该读取值 11 到 20 时,条件在循环的下一步中的外观。 -
@Denziloe 不,我不想要字符串。每 10 行就有一个新列表。喜欢
list1=[1-10], list2=[11-20] -
使用列表理解
mklist = [uline for i, uline in enumerate(u) if i >= i and i < i+nLines]。
标签: python loops while-loop assign