python-3.x - 在数组中检查 Python 3 中的标准输入时遇到问题
问题描述
如果我这样做,它会x
像false
往常一样返回。为什么会这样,你能告诉我吗?
import sys
for line in sys.stdin:
valid = ["()", "[]", "{}"]
x = True if line in valid else False
解决方案
您需要使用str.rstrip
删除每行末尾的换行符:
import sys
# since there's one invariant `valid` list, define it here, outside the loop
valid = ["()", "[]", "{}"]
for line in sys.stdin:
x = line.rstrip() in valid # no need for if ... else
print(x)
推荐阅读
- kubernetes - GKE 元数据服务器如何在 Workload Identity 中工作
- clojure - 如何获取 ClojureScript 中 fetch API 返回的 Response 对象的正文?
- delphi - Indy 10 UdpClient 和打开声音控制
- oracle - 如何在 oracle APEX 中注销会话?
- html5-canvas - 我可以在 Fabric.js 中启用透明对象的选择/抓取吗?
- reactjs - 如何仅导出 react-admin 列表中的选定项目?
- android - 如何捕获已在 Xamarin Forms (Android) DatePicker 上选择的默认日期?
- python - Matplotlib,限制图表中的条数
- google-chrome - 如何确定 Chrome 中的 cookie 问题?
- c# - 当应用程序在后台 Xamarin.Android 中时,无法第二次获得意图额外的文本