【发布时间】:2021-04-04 13:04:20
【问题描述】:
假设,我有一个范围从 1 到 50 的列表。我需要从列表中删除所有带有因子 f(用户输入)的整数(元素)。例如,如果???? = 2,程序应从整数序列中删除 4, 6, 8, 10, ... 并打印序列中剩余的整数个数。此练习中不允许使用诸如 remove() 之类的 Functions() 或任何其他函数。我还在学习。
编辑:我不允许使用 enumerate()、切片、列表理解。对不起。如果有比我更好的输出方式,我愿意接受。
lis = [1, 2, 3, 4, 5........51]
while True:
f = int(input())
if f == 0:
break
for i in lis:
if (i % f == 0 and i != f):
lis.remove(i)........#i cant figure how to remove without using remove()
c = len(lis)
print('Number of remaining integers:', c)
【问题讨论】:
-
如果允许您创建一个对我来说最干净的新列表,请添加有效元素并跳过其他元素(为此使用列表comprehension)。作为旁注,请注意使用
for i in lis进行迭代并删除元素通常是一个坏主意,因为循环会失败。
标签: python python-3.x list