python从非';不在其他列表中

python从非';不在其他列表中,python,python-3.x,Python,Python 3.x,我试图制作一个程序,从列表a中删除列表x中没有的所有内容。但它只从列表a中删除偶数。这是我的密码: n = int(input()) a = [] for i in range(1, n + 1): a.append(str(i)) x = [s for s in input().split()] for o in a: if o not in x: a.remove(o) print(a) 正确的做法是: a = [o for o in a if o in x] 旁注:x=

我试图制作一个程序,从列表
a
中删除列表
x
中没有的所有内容。但它只从列表
a
中删除偶数。这是我的密码:

n = int(input())
a = []
for i in range(1, n + 1):
  a.append(str(i))
x = [s for s in input().split()]
for o in a:
  if o not in x:
    a.remove(o)
print(a)

正确的做法是:

a = [o for o in a if o in x]
旁注:
x=[s代表input()中的s.split()]
是冗余的,其作用与:

x = input().split()

请解释您的代码中当前不起作用的内容。包括您可能收到的任何错误消息。此外,请确保您编辑问题以添加额外的解释。不要使用评论空间来扩大问题的清晰度。哦,请不要在迭代列表时从列表中删除项目!