如何解决如何在startswith方法上循环
我需要检查输入的第一个单词是否在我的列表中
name = input("type your name: ")
if name.startswith("Tim") or name.startswith("Anna") or name.startswith("Noah") or name.startswith("Justin"):
print('correct')
else:
print('false')
我需要以更好的方式编写它,例如:
myList = ['Tim','Anna','Noah','Justin']
name = input("type your name: ")
if name.startswith(*any name in my list*):
print('correct')
解决方法
使用列表解析和任意关键字:
myList = ['Tim','Anna','Noah','Justin']
name = input("type your name: ")
if any([name.startswith(item) for item in myList]):
print('correct')
else:
print('false')
if
块可以从字面上解释为:
如果 name
以 myList
中的任何项目开头,则打印“正确”
if name.startswith(("Tim","Anna","Noah","Justin")):
如果它以tuple
的任何一个元素开头都是真的,而如果tuple
是这种情况下的文字,它是在编译时生成并缓存的,所以性能很荒谬好的。在引擎盖下,它只是一个接一个地循环并在它被击中时短路,但您不必自己编写循环。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。