如何在python中的for循环中增加1或2
我已经创建了这个代码,但我需要它更通用。看看:如何在python中的for循环中增加1或2,python,python-3.x,for-loop,Python,Python 3.x,For Loop,我已经创建了这个代码,但我需要它更通用。看看: if (card_task_e[1] > card_task_e[2]): #Starting with 1 ol_task_e.append(card_task_e[1]) counte+=1 if (card_task_e[1] > card_task_e[4]): counte+=1 ol_task_e.append(card_task_e[1]) if (card_task_e[1] > c
if (card_task_e[1] > card_task_e[2]): #Starting with 1
ol_task_e.append(card_task_e[1])
counte+=1
if (card_task_e[1] > card_task_e[4]):
counte+=1
ol_task_e.append(card_task_e[1])
if (card_task_e[1] > card_task_e[6]):
counte+=1
ol_task_e.append(card_task_e[1])
if (card_task_e[1] > card_task_e[8]):
counte+=1
ol_task_e.append(card_task_e[1])
if (card_task_e[1] > card_task_e[10]):
counte+=1
ol_task_e.append(card_task_e[1])
if (card_task_e[1] > card_task_e[12]):
counte+=1
ol_task_e.append(card_task_e[1])
if (card_task_e[3] > card_task_e[4]): #Going onto 3
counte+=1
ol_task_e.append(card_task_e[3])
if (card_task_e[3] > card_task_e[6]):
counte+=1
ol_task_e.append(card_task_e[3])
if (card_task_e[3] > card_task_e[8]):
counte+=1
ol_task_e.append(card_task_e[3])
if (card_task_e[3] > card_task_e[10]):
counte+=1
ol_task_e.append(card_task_e[3])
if (card_task_e[3] > card_task_e[12]):
counte+=1
ol_task_e.append(card_task_e[3])
if (card_task_e[5] > card_task_e[6]): #Going onto 5
counte+=1
ol_task_e.append(card_task_e[5])
if (card_task_e[5] > card_task_e[8]):
counte+=1
ol_task_e.append(card_task_e[5])
if (card_task_e[5] > card_task_e[10]):
counte+=1
ol_task_e.append(card_task_e[5])
if (card_task_e[5] > card_task_e[12]):
counte+=1
ol_task_e.append(card_task_e[5])
if (card_task_e[7] > card_task_e[8]): #Going onto 7
counte+=1
ol_task_e.append(card_task_e[7])
if (card_task_e[7] > card_task_e[10]):
counte+=1
ol_task_e.append(card_task_e[7])
if (card_task_e[7] > card_task_e[12]):
counte+=1
ol_task_e.append(card_task_e[7])
if (card_task_e[9] > card_task_e[10]): #Going onto 9
counte+=1
ol_task_e.append(card_task_e[9])
if (card_task_e[9] > card_task_e[12]):
counte+=1
ol_task_e.append(card_task_e[9])
if (card_task_e[11] > card_task_e[12]): #Finishing with 11
counte+=1
ol_task_e.append(card_task_e[11])
正如您所看到的,我有很多if条件,我觉得如果我使用for循环,效率会更高,但是我真的不知道如何在Python中实现它
请注意,数组“card_task_e”的长度可以从低到0或高到50
如果有人能帮助我改进for循环,我将不胜感激。您可以通过使用计数器来引用特定的列表元素,该计数器在for循环的每个过程中递增2
counter = 0
for ____ in ____:
counter += 2
<do something to> some_list[counter]
计数器=0
对于,
计数器+=2
一些清单[柜台]
您还可以在循环中添加
if
语句,以指示计数器的递增方式。您需要嵌套循环
for a in range(1,12,2):
for b in range(a+1,13,2):
if card_task_e[a] > card_task_e[b]:
ol_task_e.append(card_task_e[a])
counte += 1
未经测试,但这方面的一些变化将起作用;-)
哈哈,它应该检查数组的第一个值是否大于数组中其余的偶数索引A.Bhatnagar 为什么不简单地使用一个列表片来测试它呢
a = [16,1,2,3,4,5,6,7,8,9]
print ( a[0] > max ( a[2::2] ) ) # prints True
a = [16,1,2,3,4,5,6,7,8,9,22]
print ( a[0] > max ( a[2::2] ) ) # prints False
a[2::2]
从a
的第二个元素开始,每第二个元素取一次,直到结束max(..)
计算其中最大的一个,然后a[0]>max(..)
检查a的第一个元素是否大于该列表中的所有其他偶数值。这将适用于任何长度的卡任务
首先,我们循环遍历奇数整数,从1到长度。在内部,我们在从当前奇数索引开始的偶数整数之间循环。每个for循环中的尾部2告诉循环在循环的每次迭代中增加2
list_size = len(card_task_e)
for odd_index in range(1, list_size, 2):
for even_index in range(odd_index + 1, list_size, 2):
ol_task_e.append(card_task_e[odd_index])
counte += 1
欢迎来到SO。这是很多代码!你能试着把它精简成一个吗?哈哈,它应该检查数组的第一个值是否大于数组中其余的偶数索引。all([a[0]>i for i in a[1:2:])
注意数组是零基的……你甚至不需要all
-amax(…)
所有偶数元素也可以,如果第0个大于第0个,则进行比较。这与问题所问的如何做无关。你的速记太短了,以至于你无法真正传达任何信息。问题是“如何在for循环中增加1或2”。问题的标题是“如何在for循环中增加1或2”。然后OP在问题的主体中进一步解释了他们到底想要什么。问题的主体并没有让我更清楚。如果这没有帮助,OP可以响应。我不认为代码做的正是OP认为它做的,如果它做了,它做的不是很有效。
list_size = len(card_task_e)
for odd_index in range(1, list_size, 2):
for even_index in range(odd_index + 1, list_size, 2):
ol_task_e.append(card_task_e[odd_index])
counte += 1