python - Python中的列表理解解决以下问题
问题描述
进行列表推导以返回另一个数字列表中不存在的数字列表。
使用列表推导定义从 1 到 50 的数字列表。
定义另一个列表 blist 并将其值存储为
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47]
使用列表推导制作一个最终列表,该列表将包含 alist 中但不在 blist 中的元素。
打印最终
alist = [x for x in range(1,51)]
blist = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47]
final = [i for i in range (len(alist)) if i not in blist ]
print (final)
解决方案
在这种情况下,您可以使用 set() 来清除重复项:
alist = [x for x in range(1,51)]
blist = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47]
final = set(alist) - set(blist)
print (list(final))
输出:
[1, 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30, 32, 33, 34, 35, 36, 38, 39, 40, 42, 44, 45, 46, 48, 49, 50]
推荐阅读
- sql - SQL 通配符不产生任何结果
- java - 使用 JPA 和 Hibernate 覆盖 CrudeRepository save() 错误
- swift - 缺少作为视图祖先的视图
- c++ - map 是否将元素存储为 std::pair?
- c++ - macosx Catalina是否总是默认使用clang?
- c - 如何使用 C 编程使 SCTP 校验和非零
- python - 在 python 中加载大型数据集出现 2 个错误中的 1 个 - 内存问题或退出代码 -1073741819 (0xC0000005)
- soap - 为什么 Coldfusion Compoent WSDL 文件不会在 cfcomponent 标记中使用 serviceaddress 属性更新
- javascript - forEach 进入 for 循环
- javascript - 数组对象值不显示