Python 反向 mod
Python reverse mod
我正在使用 Python3。我想从 mylist
中获取 4 个项目来填充 list2 并每 4 个循环打印我的 list2。即使最后只有 1、2 或 3 个项目,我也需要打印其余部分。
我想用 mod %
:
mylist = [1, 2, 3, 4, 5]
list2 = []
for count, el in enumerate(mylist):
list2.append(el)
if count % 4 == 0:
print(list2)
list2 = []
输出:
[1]
[2, 3, 4, 5]
但我需要倒数。
我试图从 1 enumerate(mylist, 1):
开始,但输出是 [1, 2, 3, 4]
最后一个被忽略。
我需要的输出是:
[1, 2, 3, 4]
[5]
mylist
的长度是完全随机的。我怎样才能得到我想要的输出?
count
从 0
开始,0%4==0
.
所以就像你一样使用枚举然后在最后
if len(list2) != 0
print(list2)
你有两个问题。正如您所注意到的,一个是从 0 开始。第二个是你只在列表正好有 4 个元素时打印,所以如果最后还有一些东西,那么在打印这些剩余值的循环之后就不再有打印调用了。在末尾加上:
mylist = [1, 2, 3, 4, 5]
list2 = []
for count, el in enumerate(mylist, 1):
list2.append(el)
if count % 4 == 0:
print(list2)
list2 = []
if list2: print(list2)
@remcogerlich 为您所要求的 写了一个很好的答案。虽然,我建议不要使用 % 4
来实现你要实现的目标(直到它是学校的某种家庭作业)并改用列表切片:
n = 4
for i in range(0, len(mylist), n):
print(mylist[i:i + n])
Python 可以处理索引 "overflow" 因此您可以编写更多高级代码而不是关心尾部大小。看看类似的old question
在我看来,您只想将数据分成 4 组。这里做得最好:
How do you split a list into evenly sized chunks?
def chunks(l, n):
"""Yield successive n-sized chunks from l."""
for i in range(0, len(l), n):
yield l[i:i + n]
for i in chunks(mylist,4):
print(i)
我正在使用 Python3。我想从 mylist
中获取 4 个项目来填充 list2 并每 4 个循环打印我的 list2。即使最后只有 1、2 或 3 个项目,我也需要打印其余部分。
我想用 mod %
:
mylist = [1, 2, 3, 4, 5]
list2 = []
for count, el in enumerate(mylist):
list2.append(el)
if count % 4 == 0:
print(list2)
list2 = []
输出:
[1]
[2, 3, 4, 5]
但我需要倒数。
我试图从 1 enumerate(mylist, 1):
开始,但输出是 [1, 2, 3, 4]
最后一个被忽略。
我需要的输出是:
[1, 2, 3, 4]
[5]
mylist
的长度是完全随机的。我怎样才能得到我想要的输出?
count
从 0
开始,0%4==0
.
所以就像你一样使用枚举然后在最后
if len(list2) != 0
print(list2)
你有两个问题。正如您所注意到的,一个是从 0 开始。第二个是你只在列表正好有 4 个元素时打印,所以如果最后还有一些东西,那么在打印这些剩余值的循环之后就不再有打印调用了。在末尾加上:
mylist = [1, 2, 3, 4, 5]
list2 = []
for count, el in enumerate(mylist, 1):
list2.append(el)
if count % 4 == 0:
print(list2)
list2 = []
if list2: print(list2)
@remcogerlich 为您所要求的 写了一个很好的答案。虽然,我建议不要使用 % 4
来实现你要实现的目标(直到它是学校的某种家庭作业)并改用列表切片:
n = 4
for i in range(0, len(mylist), n):
print(mylist[i:i + n])
Python 可以处理索引 "overflow" 因此您可以编写更多高级代码而不是关心尾部大小。看看类似的old question
在我看来,您只想将数据分成 4 组。这里做得最好:
How do you split a list into evenly sized chunks?
def chunks(l, n):
"""Yield successive n-sized chunks from l."""
for i in range(0, len(l), n):
yield l[i:i + n]
for i in chunks(mylist,4):
print(i)