Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何删除嵌套在列表中的字符?_Python 3.x_Character_Nested Lists_Del - Fatal编程技术网

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']