python-3.x - 如何删除嵌套在列表中的字符?
问题描述
我得到了一个示例字符串AABCAAADA
。然后我把它分成 3 个部分: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
。
解决方案
from functools import reduce
l = ['AAB','CAA','ADA']
print([''.join(reduce(lambda a, b: a if b in a else a + b, s, '')) for s in l])
或者,对于 Python 3.6+:
print([''.join({a: 1 for a in s}) for s in l])
两个输出:
['AB', 'CA', 'AD']
推荐阅读
- java - 如何对一组链接节点进行排序。(按优先级值对顺序链接的节点进行排序。)
- r - R 相当于 Stata 在宏上的 for 循环
- c++ - 终端不会为 C++ 文件创建 .exe 文件?
- pandas - 使用 GeoPandas 从点创建多边形
- asp.net-mvc - 我正在尝试下面给定的代码,但它显示错误 CS0051
- c++ - 数据成员 SFINAE 的 C++17 测试:gcc vs clang
- karate - 读取多个文件的复杂数据驱动测试
- bash - awk:删除每个字段之间的多个选项卡并输出一行,其中每个字段由单个选项卡分隔
- python - 如何用 np.nan 填充任何只包含空格的单元格?
- java - int 数组获取元素错误