Python 如何使用列表值作为范围?
我有一个整数列表和一个填充了33行的QTableWidget 我的列表如下(对应于QTableWidget中的行): 我想按行数从表中提取信息 例如,我想在表中循环前15行,然后是下14行,然后是下1行等等。因此,目前我使用:Python 如何使用列表值作为范围?,python,list,Python,List,我有一个整数列表和一个填充了33行的QTableWidget 我的列表如下(对应于QTableWidget中的行): 我想按行数从表中提取信息 例如,我想在表中循环前15行,然后是下14行,然后是下1行等等。因此,目前我使用: my_list = [15, 14, 1, 2, 1] for row in range(15): # Do something for row in range(15,29) # Do something for row in range(29,3
my_list = [15, 14, 1, 2, 1]
for row in range(15):
# Do something
for row in range(15,29)
# Do something
for row in range(29,30)
# Do something
...
由于列表中的值(以及项目的数量)可能会发生变化,因此最有效的方法是什么?通过这种方法,您可以获得配对并将其用于
范围()
现在,你可以走了:
for item in next(ranges):
编辑#1
如果你的#做事总是不一样,你可以使用:
for row in next(ranges):
# Do something
for row in next(ranges):
# Do something
编辑#2
如果你的#做某事
总是一样的,你可以:
for item in my_list:
for row in next(ranges):
# Do something
您可以使用列表索引进行尝试
for row in range (my_list[0]):
print "abc"
for row in range (my_list[1]):
print "bc"
for row in range (my_list[2]):
print "ac"
for row in range (my_list[3]):
print "amc"
for row in range (my_list[4]):
print "c"
当我对下一个(范围)中的项目使用时:
,它只对前15个项目执行此操作。我应该使用其他东西吗?请参阅编辑。我知道你正在改变每个范围的操作。啊,我明白你的意思,谢谢!在问题中,我在列表中提到了5项,因此我必须对下一行(范围)使用:
5次。如果列表中有3个项目,则必须对下一行(范围)使用:
3次。基本上,我正在运行一个GIS插件,因此列表中的项目数量可能会有所不同。是否有一种方法可以适应此更改,而不必对下一行(范围):
x次进行硬编码?也就是说,它可以在单个循环中完成吗?如果您的#Do something
始终相同,请进行另一次编辑。是的,我正要对使用嵌套的for
循环发表评论,如中所述)。现在它工作得很好,非常感谢:)谢谢你的回答,但想法是列表中的项目数可以更改(即,我显示了5
,但也可以是3
)。我正在寻找一种更通用的方法,而不是硬编码:)
for item in my_list:
for row in next(ranges):
# Do something
for row in range (my_list[0]):
print "abc"
for row in range (my_list[1]):
print "bc"
for row in range (my_list[2]):
print "ac"
for row in range (my_list[3]):
print "amc"
for row in range (my_list[4]):
print "c"