gpt4 book ai didi

python - 在python中将打印语句与列表理解相结合

转载 作者:行者123 更新时间:2023-11-28 16:44:07 26 4
gpt4 key购买 nike

我正在编写代码以使用 GSM 调制解调器在 python 中发送和接收消息。

每当收到一条新消息时,我都会在从串行端口对象读取后在列表 x 中得到以下响应。

+CMTI: "SM",0 # Message notification with index

我正在轮询这个指示,我已经使用列表推导来检查我是否收到了上述回复

def poll(x):
regex=re.compile("\+CMTI:.......")
[m for l in x for m in [regex.search(l)] if m]

这似乎有效,但是我想在找到匹配项时添加打印语句,例如

print "You have received a new message!"

如何将打印语句与上面的结合起来?

最佳答案

使用普通的for 循环,它可以像这样完成:

def poll(x):
regex = re.compile("\+CMTI:.......")
lst = []
for l in x:
for m in [regex.search(l)]:
if m:
lst.append(m)
print "You have received a new message!"

请注意,此列表并未存储在任何地方(在函数范围之外)- 也许您想返回它。


作为旁注,hacky 解决方案:

from __future__ import print_function
def poll(x):
regex = re.compile("\+CMTI:.......")
[(m, print("You have received a new message!"))[0] for l in x for m in [regex.search(l)] if m]

但这非常不符合Python - 请改用其他版本。

关于python - 在python中将打印语句与列表理解相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15677429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com