我有一个整数列表,我想删除其中有7,8,9或0的所有整数。从基于数字的python列表中删除元素
这是我迄今所做的:
import numpy as np
def P(n):
list = []
for i in range(10**(n-1),7*10**(n-1)):
list.append(i)
for i in list:
for k in str(i):
if k in ['7','8','9','0']: list.remove(i)
#elif k == '8': list.remove(i)
#elif k == '9': list.remove(i)
#elif k == '10': list.remove(i)
return list
但它返回:
[11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 30, 31, 32, 33, 34, 35, 36, 38, 40, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52, 53, 54, 55, 56, 58, 60, 61, 62, 63, 64, 65, 66, 68]
我怎样才能解决这个代码,以便它摆脱了不必要的价值观呢?即18,20,28,30等。
是否修改了您正在迭代的列表 - 随之而来的疯狂。也不要命名一个变量'list'它隐藏pythons builtin类型。如果全部(c在str(i)中的c'不在'7890'中)''返回[我为我在范围内(10 **(n-1),7 * 10 **(n-1) – AChampion