Python如何将字符串中的独立数字0替换为对应的英文单词zero?
问题解决
报错原因
- Python 中的字符串属于不可变对象,不支持直接修改单个位置的元素,这是你代码执行报错的核心原因
- 原有逐字符判断的逻辑也不符合需求,会误替换多位数中包含的单数字,比如示例里的
10中的0也会被替换,不符合「仅转换独立出现的数字」的要求
实现方案
你可以按照分割单词→逐个判断替换→重新拼接的逻辑实现,完整代码如下:
# 单个数字与英文单词的映射字典,可根据需要补充更多对应关系 num_mapping = { "0": "zero", "1": "one", "2": "two", "3": "three", "4": "four", "5": "five", "6": "six", "7": "seven", "8": "eight", "9": "nine" } s = input() # 将字符串按空格分割为单词列表,列表为可变对象 words = s.split() for i in range(len(words)): # 仅当单词是独立存在的单个数字时才替换 if words[i] in num_mapping: words[i] = num_mapping[words[i]] # 把处理后的列表重新拼接为字符串 result = " ".join(words) print(result)
输入你示例的I have 10 apples and 0 pencil,运行后输出正好是你需要的I have 10 apples and zero pencil。
内容的提问来源于stack exchange,提问作者Robert 830213
相关产品推荐
相关产品推荐

