Python 3.x 如何删除嵌套在列表中的字符?
我得到了一个示例字符串Python 3.x 如何删除嵌套在列表中的字符?,python-3.x,character,nested-lists,del,Python 3.x,Character,Nested Lists,Del,我得到了一个示例字符串AABCAAADA。然后我把它分成三部分:AAB,CAA,ADA 我已将这3个元素嵌套到一个列表中。在每个部分中,我应该检查是否存在重复字符,并删除重复字符。我知道字符串是不可变的,但有什么技巧可以做到这一点吗 下面是我尝试过的示例方法,但我无法使用del和pop方法删除该重复字符 s='AABCAAADA' x = int(input()) l=[] #for i in range(0,len(s),x): for j in range(0,len(s),3):
AABCAAADA
。然后我把它分成三部分:AAB
,CAA
,ADA
我已将这3个元素嵌套到一个列表中。在每个部分中,我应该检查是否存在重复字符,并删除重复字符。我知道字符串是不可变的,但有什么技巧可以做到这一点吗 下面是我尝试过的示例方法,但我无法使用del和pop方法删除该重复字符
s='AABCAAADA'
x = int(input())
l=[]
#for i in range(0,len(s),x):
for j in range(0,len(s),3):
l.append(s[j:j+3])
j=0
for i in range(0,len(s)//x):
for j in range(0,len(l[j])-1):
if(l[i][j] == l[i][j+1]):
pass
#need to remove the (j+1)th term if it is duplicate
输出应该是AB
,CA
,AD
或者,对于Python 3.6+:
print([''.join({a: 1 for a in s}) for s in l])
两种输出:
['AB', 'CA', 'AD']
有没有办法使用我的逻辑?你能解释一下[''.join({a:1代表s})代表s代表l]吗?有没有办法处理嵌套在列表中的单个字符?就像我们在C中所做的那样?很不幸,您的逻辑有点不正确,所以如果不完全重写其中的大部分内容,很难使它正常工作。我使用的第二种方法利用了这样一个事实,即在Python 3.6+中,dict的排序方式总是与其添加项的方式相同,因此通过使用字符作为dict理解的键,不仅后一个重复字符被丢弃,因为前面的字符占上风,当dict传递到
str.join
时转换为列表时,键的顺序也会保留。要更改字符串中的单个字符,必须对其进行切片。例如,如果a='abcde'
并且您想将其第三个字符更改为'x'
,您可以执行a=a[:2]+'x'+a[3://code>。
['AB', 'CA', 'AD']