以下是示例代码:
List1 = [['a', 'b', 'c'], ['e', 'f', 'g'], ['1', '2', '3']]
range_value = len(List1) * 2
for x in range(0, range_value):
if x == 0 or x == 1:
for y in List1[0]:
print y
print x
if x == 2 or x == 3:
for y in List1[1]:
print y
print x
if x == 4 or x == 5:
for y in List1[2]:
print y
print x
此代码看起来是定义if语句的手动步骤。
如果我有100或1000个子列表等大值。
我必须写100或1000的if语句,
如果x值为0且打印List1 [0]值为1且x值为2且打印List1 [1]为3,如果x值为4且打印列表为1 [2]。
打印x值也如下所示
print x为0并且打印List1 [0]的y,打印x为1并且打印列表1 [0]的y,打印x为2并且打印列表1 [1]的y,打印x为3并且打印y为List2 [1]等等
在这里帮助我
答案 0 :(得分:1)
由于您的索引按两个分组,您可以执行以下操作,以便相同的操作将发生两次。
List1 = [['a', 'b', 'c'], ['e', 'f', 'g'], ['1', '2', '3']]
for x in xrange(len(List1) * 2):
print x
for y in List1[x//2]: print y
由于您的索引按两个分组,您可以执行以下操作,以便相同的操作将发生两次。
List1 = [['a', 'b', 'c'], ['e', 'f', 'g'], ['1', '2', '3']]
for x in range(len(List1) * 2):
print(x)
for y in List1[x//2]: print(y)
使用列表推导也可以
List1 = [['a', 'b', 'c'], ['e', 'f', 'g'], ['1', '2', '3']]
[print(y) for x in range(len(List1) * 2) for y in List1[x//2]]
答案 1 :(得分:0)
您不需要使用if
条款。您可以通过以下方式使代码模式动态化:
for x in List1: # Iterate over the list of lists
for _ in range(2): # Do the process below two times like you want
for y in x: # Iterate over each item of the sublist
print(y) # Print the item
另一个想法可能是第一个循环的迭代加倍,然后使用一个分区:
for x in range(len(List1) * 2):
for y in List1[x//2]: # Floor division would turn 0//2 > 0, 1//2 > 0, 2//2 > 1, 3//2 > 1, 4//2 > 1... efectively doubling the loop
print(y)
请注意,我的代码是在python 3中。为了转换为python 2,我认为您必须删除print
的问题并将range
更改为xrange
(更好的性能)。
另外,如果你真的想使用if
语句,我会建议在第一行下面的行中使用elif
而不是if
,这会让你的代码更快一些因为另一个条件不会被检查,如果他们之上的人是真的。
答案 2 :(得分:0)
基本上你的内部for循环基于x / 2的值运行: 这有效:
def runMethod(x,List1):
if x %2 == 0:
for y in List1[int(x/2)]:
print y
print x
List1 = [['a', 'b', 'c'], ['e', 'f', 'g'], ['1', '2', '3']]
range_value = len(List1) * 2
for x in range(0, range_value):
runMethod(x,List1)
答案 3 :(得分:0)
您可能希望使用变量来替换第一个和第二个参数。然后逐步增加它。 例如,
for x in range(0, range_value):
if x == first_variable or x == second_variable:
for y in List[first_variable]:
print(y)
first_variable += 2
second_variable += 2