我有一個整數列表,我想刪除其中有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