为什么这个列表理解从输入中附加数字不起作用?



嗨,Python新手,并尝试使用推导来学习。 在下面的代码中开发,用于读取字符串中的数字并提取数字,但试图用单个理解语句替换。请告知

sent = input('Enter a string')
digit = []
for i in range(len(sent)):
if sent[i].isdigit():
d = sent[i]
digit.append(d)

尝试以下方法

digit = [d for i in range(len(sent)) if sent[i].isdigit() = d]

你很接近;这是一种方式:

sent = input('Enter a string')
# 123
digit = [int(sent[i]) for i in range(len(sent)) if sent[i].isdigit()]
print(digit)
# [1, 2, 3]

一种更 Python 的方法是直接迭代值:

digit = [int(i) for i in sent if i.isdigit()]

代码的问题在于d列表理解中未定义。

最新更新