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

时间:2018-05-12 10:37:44

标签: python list list-comprehension

嗨新手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]

1 个答案:

答案 0 :(得分:1)

你很亲密;这是一种方式:

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]

更Pythonic的方法是直接迭代值:

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

您的代码问题d在列表解析中未定义。