Python集合问题

给定合法数据集(1,3,5,7,9},任意输入一列表,如[3,4,7,2,5,6,2,7,9,4],将列表中的非法数据(不在合法数据集中的元素)全部删除。编写程序完成该问题,程序运行要求如下:
输入一列表:[3,4,7,2,5,6,2,7,9,4]
删除后列表:[3,7,5,7,9]

img


set1 = {1,3,5,7,9}
ls = eval(input('输入一列表:')) # [3,4,7,2,5,6,2,7,9,4]
list1 = []      #list是内置函数,命名的时候建议不要用这个命名
for i in ls:
    if i not in set1:
        continue     # break是退出循环,continue是跳出当前循环
    else:
        list1.append(i)

print('删除后的列表:{}'.format(list1))

将break改成continue应该就可以了。break完全跳出了该循环,而continue是停止当前循环并继续下一次循环。

a={1,3,5,7,9}
b=[3,4,7,2,5,6,2,7,9,4]
c=[x for x in b if x in a]
print(c)