如果列表项在另一个列表中不存在,如何不更改

时间:2019-04-10 09:15:36

标签: python

因此,我们有两个列表,a仅包含字母字符,而b是用户对列表的输入。我正在尝试针对b中的索引更改a中的字母字符,而不更改用户输入中的非字母字符。

alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
a=input("Please enter a string: ")
b=list(a)
f=[]
for elem in b:
  if elem in alphabet:
    c=alphabet.index(elem)
    d=(len(alphabet)-c)
    e=alphabet[d-1]
    f.append(e)
mystring=''.join(f)
print(mystring)

我希望abc123的输出为zyx123

2 个答案:

答案 0 :(得分:2)

elem不在字母中时,您只是错过了else语句

if elem in alphabet:
    ...
else:
    f.append(elem)

答案 1 :(得分:1)

考虑使用maketransstr.translate似乎与您正在做的事情非常匹配的东西:

intab = "abcdefghijklmnopqrstuvwxyz"
outtab = intab[::-1]
trantab = str.maketrans(intab, outtab)

str = "abc123";
print (str.translate(trantab))

>> zyx123

在上面,outtab变量只是使用python切片语法[::-1]的intab变量(以相反的顺序)

Maketrans将一个列表中的所有字符转换为另一列表中位置相等的字符。不在第一个列表中的任何字符都将保留。