尝试遍历字符串以将某些字符添加到新字符串
Posted
技术标签:
【中文标题】尝试遍历字符串以将某些字符添加到新字符串【英文标题】:Trying to Iterate through strings to add certain characters to new string 【发布时间】:2021-12-05 00:21:38 【问题描述】:我正在尝试从字符串中删除某些字符,有人建议我尝试创建一个新字符串并添加符合我标准的字符。我使用 for 循环遍历字符串,但随后字符没有添加到新字符串中 - 它打印一个空白字符串。将包含一个 ss。
【问题讨论】:
请将您的代码以纯文本形式发布。 【参考方案1】:您应该使用in
运算符将一个值与多个其他值进行比较:
if s[i] not in 'AEIOUaeiou' or s[i-1] == ' ':
# if you prefer lists / tuples / sets of characters, you can use those instead:
# if s[i] not in ['A', 'E', 'I', 'O', ...]
answer_string += s[i]
【讨论】:
【参考方案2】:你应该使用:
answer_string += s[i]
因为,您当前的声明 answer_string + s
没有达到您希望的效果。
这是我从给定的上下文中理解的。如果您可以发布带有参考的代码 sn-p 以更好地理解该问题,那就更好了。
【讨论】:
【参考方案3】:您必须单独检查每个角色。那将是:
if s[i] != "A" or s[i] != "B" ... :
更优雅的解决方案是:
if s[i] not in ["ABCD..."]:
也正如@avats 所说,您应该添加单个字符,而不是整个字符串
answer_string += s[i]
要使检查不区分大小写,因此您不必输入所有大写字母和小写字母,请使用lower()
:
if s[i].lower() not in ["abcd"]:
【讨论】:
以上是关于尝试遍历字符串以将某些字符添加到新字符串的主要内容,如果未能解决你的问题,请参考以下文章