python - 如何用 WHILE 循环重写这个 FOR 循环
问题描述
这是我在 Python 电子书中的练习之一。我只是想知道是否可以使用 WHILE 而不是 FOR。谢谢你的帮助
#要求用户输入正则表达式 #计算匹配正则表达式的行数。
我的代码
x= input('Enter a regular expression.')
file = open('mbox-short.txt')
count = 0
for line in file: line=line.rstrip()
if re.search('\\b' + x + '\\b', line):
count=count+1
print (count)
解决方案
如果您真的想提高一个档次,请利用 True 和 False 总和为 1 和 0 的事实。这完全摆脱了显式的 for 和 while。
import re
x = input('Enter a regular expression.')
my_regex = '\\b' + x + '\\b'
with open('mbox-short.txt') as f:
count = sum(bool(re.search(my_regex, line)) for line in f)
推荐阅读
- flutter - 用空值或空值初始化有什么区别吗?
- julia - 在约束 JuMP 中编码数组
- c++ - 为什么 C++ 允许在 case 标签下定义对象,即使这些 case 与检查值不匹配,这与 if 语句相反?
- python - 为什么我的 FP 增长代码没有返回正确的前缀路径集?
- c++ - 带有字符指针的 C++ 中的 SIGSEGV 错误
- c++ - 为什么右值引用成员会是 const?
- c# - System.InvalidOperationException:未使用 GCHandle.FromIntPtr() 初始化句柄
- android - 连接到BLE设备后,我怎么知道有哪些服务可用,我只知道打印uuid但我想知道服务的名称
- android - 将渐变着色器应用于 LazyRow
- sql-server - 在触发器中使用动态 SQL 来识别更改