假设我有此列表l = [12, 13, 44, 55, 10]
。现在,列表的第一个元素是12
,现在,这12个元素又被分为1和2。如果剩余列表中有1个,那么该数字将被删除,即在这种情况下,赢得了13、12、10不会被考虑。同样,对于其他人。
我尝试过的代码。
for i in l:
if i:
for j in str(i):
if j != l[1::]:
print(j)
我想要的结果是
列表现在仅包含[44, 55]
答案 0 :(得分:0)
我的解决方法是:
l = [12, 13, 44, 55, 10]
solve = []
for p in l:
flag = True
for i in str(p):
if i == '1':
flag = False
if flag:
solve.append(p)
print solve
或
l = [12, 13, 44, 55, 10]
solve = []
for p in l:
if not '1' in str(p):
solve.append(p)
print solve
答案 1 :(得分:0)
如果我理解正确,您要删除任何包含“ 1”的数字吗?如果是这样,您可以使用列表推导过滤掉这些数字:
>>> l = [12, 13, 44, 55, 10]
>>> compare = [x for x in l if not '1' in str(x)]
>>> compare
[44, 45]
答案 2 :(得分:0)
我知道要与整个列表进行比较的字符是列表中第一个整数的第一个字符。在这种情况下:
l = [12, 13, 44, 55, 10]
first_character = str(l[0])[0]
result = [x for x in l if not first_character in str(x)]
print(result)