python - 理解列表推导(和嵌套 LC)的语法
问题描述
这有效:
allDasTickets = ["9255955", "9255958", "9255960", "9255977"]
[[j for j in allDasTickets if x != j] for x in allDasTickets]
['9255958', '9255960', '9255977']
['9255955', '9255958', '9255977']
['9255958', '9255960', '9255977']
['9255955', '9255958', '9255960']
但这不会:
allDasTickets = ["9255955", "9255958", "9255960", "9255977"]
[for x in allDasTickets [j for j in allDasTickets if x != j]]
File "<stdin>", line 1
[for x in allDasTickets [j for j in allDasTickets if x != j]]
^
解决方案
对于列表推导,语法是
[ <something> for elem in sequence]
where<something>
本身可以是列表理解。同时,对于嵌套循环(但不是嵌套列表)推导式,语法是
[<something> for elem in outerseq for elem2 in innerseq]
以同样的方式,依此类推。
推荐阅读
- android - Dagger 单例 vs Kotlin 对象
- python-3.x - 我如何在 Python 中解析效率 Html?
- angular - Angular 7:如何填充自定义表格组件
- javascript - 如何在 HTML 的 onChange 上显示不同的下拉组列表
- swift - 将 UITableview 与订阅数据同步
- c# - 互操作 Excel:PivotTable.RefreshTable() 引发异常
- reactjs - 使用 ESlint 对 React+Typescript 项目进行 Linting
- c++ - 创建一个构造函数,可以接受任意数量的参数
- objective-c - 为什么ARC下直接派发版本会泄露?(我该如何解决?)
- google-maps - 使用一组人行横道更新现有路线