去掉一个字符串中出现在另一个字符串中的字母



我想用第一个字符串创建一个由其他字符组成的新字符串。然后我希望第一个字符串只包含不在新字符串中的字母。如果你能帮我的话,谢谢。

str = 'Hello'
str2 = str[::2]
for char in str:
if char in str2

我做得很好,直到我被如何删除第一个字符串中的字母卡住了。

您可以尝试手动遍历每个字符并检查它是否不在另一个字符串中,这是您似乎一直在尝试的。要实现这一点,您可以使用if char not in str2代替。因为这检查字符是否不在另一个字符串中。所以你的代码看起来像这样:

str = 'Hello'
str2 = str[::2]
for char in str:
if char not in str2:

现在,我们需要以某种方式删除这个字符。我个人建议用你的新字母创建一个新的字符串,这样你完成的代码看起来就像这样:

str = 'Hello'
str2 = str[::2]
result = '' # Empty string
for char in str:
if char not in str2: # If the character is not in the other string
result += char # Add the character to the result
print(result) # Print the result
string = 'Hello123µ►'
# every other character (even)
string_evens_set = string[1::2] 
string_odds_set = string[0::2]
dict_evens = {}
for c in string_evens_set:
if c >= 'a' and c<='z' or c >= 'A' and c<='Z':
dict_evens[c] = True
list_result = []
for c in string_odds_set:
if c >= 'a' and c<='z' or c >= 'A' and c<='Z':
#if not dict_evens[c]:
if not c in dict_evens.keys():
list_result.append(c)
the_first_string = "".join(list_result)
print(the_first_string)

好吧,如果这不是指:1:选择每隔一个字符2: select not (1)

因此可以简单地为"select 1,3,5,7....字符",因为它们不在第二个字符串中。
第二个字符串包含0,2,4,6,8....字符。

那么可能有更广泛的意义比建议。例如,该用户的意思是

  1. 只有字母(不是数字,不是本地字符,不是控制符号)[a-zA-Z]
  2. 不在新字符串(每2个字符的子集)
  • 如果是这样的话:
string = 'Hello123µ►'
# every other character (even)
string_evens = string[1::2] 
for character in 
# every oddly numbered character
# string = string[::2] 

string = 'Hello'
# every other character (even)
string = string[1::2] 
# every oddly numbered character
# string = string[::2] 
print(string)

你可以在单行操作中做到这一点-将你已经做过的选择赋给字符串..


result:  [H]e[l]l[o]
visible: el

注:如果你打算在blob或任何其他大字符串中使用它,请考虑特别关于不可变性的注释。

注:如果你打算使用保留字作为变量名,那么毫无疑问你可能会遇到一些错误。这就是为什么我不使用str作为变量名的原因。您可以在任何编程语言中查找保留字,例如for, if, else,数据类型名称等。

相关内容

最新更新