Python从字符串提取无方括号数字:AI开发年龄获取需求求解
解决提取年龄时带方括号的问题
嘿,我懂你的困扰啦!你现在用列表推导式得到的age其实是一个列表(比如输入「I am 14 years old」时,age会是[14]),直接把列表转成字符串自然就会带上方括号咯。
要拿到不带括号的纯数字,只要取列表里的第一个元素就行——毕竟你的场景里用户输入应该只会有一个年龄数字。修改后的代码可以这样写:
# Gets users age elif "i am" in inp and "years old" in inp: # 提取数字并取列表第一个元素 age = int([s for s in inp.split() if s.isdigit()][0]) age_str = str(age) print(age_str)
如果想更稳妥一点(避免极端情况下列表为空导致索引报错,当然你的判断条件已经确保输入里有数字了,这个算是优化项),可以用next()函数直接获取第一个符合条件的数字:
# Gets users age elif "i am" in inp and "years old" in inp: age = int(next(s for s in inp.split() if s.isdigit())) print(str(age))
这样输出的就是不带任何括号的纯数字字符串啦!
内容的提问来源于stack exchange,提问作者user9754923
相关产品推荐
相关产品推荐

