嗨,我是python新手,我有一个问题。我知道有一种方法可以通过%来实现,但我尝试在没有模的情况下实现它,如果有方法的话。我有一个数字列表,我需要每N个数字(我有每秒钟的数字来保持简单)打印出来,但当is达到最大索引时,它会给我一个错误“列表超出索引”。我试过了,但似乎不起作用。这就是我到目前为止的想法:
def napln(n):
s = []
for i in range(n):
s.append(i)
print(s)
return s
def rozpocitavadlo(s):
rozpocitavadlo = []
for i in s:
original_position = s[i]
changed_position = s[i+2]
original_position = changed_position
if original_position >= len(s):
for j in s[0:]:
original_position = s[j]
changed_position = s[j+2]
original_position = changed_position
rozpocitavadlo.append(s.pop(original_position))
s = napln(6)
如果您只是想每两个打印一个数字,您可以简单地运行以下操作:
在
[1::2]
中添加1
迭代过程将从跳过第一个元素的第二个元素开始,如下所示:如果还希望重新开始并将跳过的元素添加到最终列表中,则可以先添加偶数,然后添加奇数:
您的结果将是:
[1, 3, 5, 0, 2, 4]
您可以深化here切片表示法,该表示法允许您迭代自定义数量的元素列表
显然,正如@vishal gahlot所说,您可以通过向函数添加
Nth
参数来参数化要跳过的元素数FINAL:对于以
Nth
作为参数的更灵活的实现,您可以在原始列表上反复迭代,直到每个元素都添加到新列表中:评论后更新:这样您将得到偶数,删除它们,然后在剩余元素上重复,直到最后一个剩余:
您的输出将是:
[1, 3, 5, 2, 4, 0]
您的问题
i have a list of numbers and i need to every Nth(i have every second number to keep it simple) number to be printed out
可以通过内置Python函数解决!不需要额外的代码range
的参数是起始索引(0)、要循环的项目数(len(s)
)以及步骤的大小。这样,Python将打印第0个元素,然后再打印第2个元素编辑: 您可以尝试以下方法:
这样,您将使用不同的起始偏移量在列表中循环多次,因此您首先得到所有偶数,然后是所有奇数。偏移循环中的计算用于计算我们需要在列表中循环多少次
def rozpocitavadlo(s,Nth): return s[::Nth]
您可以使用此方法打印列表的每N个数字
相关问题 更多 >
编程相关推荐