python - 一个带有条件的 for 循环 - 试图使它成为一个内衬
问题描述
for row,col in targets:
if (board[row][col] == -1 and ((col != 0 and board[row][col - 1] != -1) or (col != len(board) - 1 and board[row][col + 1] != -1) or (row != 0 and board[row - 1][col] != -1) or (row != len(board) - 1 and board[row + 1][col] != -1))): return 1000
return min(penalty)
我试图使它成为一个班轮,但这样做:
return [min(penalty), 1000][True in[(board[row][col] == -1 and ((col != 0 and board[row][col - 1] != -1) or (col != len(board) - 1 and board[row][col + 1] != -1) or (row != 0 and board[row - 1][col] != -1) or (row != len(board) - 1 and board[row + 1][col] != -1)) for row,col in targets)]]
但它不是一回事。
解决方案
你可以试试这个:
return 1000 if any(condition(r, c) for r, c in targets) else min(penalty)
这里,condition()
是你长期的内在状态。
但这将更难阅读,并且不会比您已经拥有的更快。
推荐阅读
- oracle - 有什么方法可以在 Oracle 表中找到更新的列
- embedded - 有多少 .elf 文件被闪存到目标 MCU?
- spring-integration - AMQP Inbound 和 JMS Outbound 之间的全局事务
- java - 如何在Long中获取日历视图上的选定日期?
- python-3.x - 不可散列的类型:绘制 3D 图表时的“numpy.ndarray”
- c# - C# 应用程序在正常运行时间较长后需要很长时间才能从睡眠中返回
- node.js - 关闭nodejs服务器中的mongodb服务关闭或错误
- javascript - 我是节点的新手。js,我想知道我如何处理猫鼬咨询结果?
- python - 基于第二个数据帧的熊猫数据帧子集
- c# - 是否可以在使用 Jira 凭据的 asp.net mvc 应用程序中创建登录页面?