python - 使用for循环删除重复项时如何保留空格?
问题描述
所以我的问题的基础是删除字符串中的所有重复字符。我通过执行以下操作成功地做到了这一点:
def remove_duplicates(strng):
"""
>>> remove_duplicates("The quick brown fox jumps over the lazy dog")
'The quick brown fx jmps v t lazy dg'
"""
empty = ""
for ch in strng:
if ch not in empty:
empty = empty + ch
return empty
我从中收到的输出是:
Expected:
'The quick brown fx jmps v t lazy dg'
Got:
'The quickbrownfxjmpsvtlazydg'
它删除了所有我不想要的空间。感谢任何帮助。
解决方案
还有一种更短的方法可以做到这一点:
def remove_duplicates(strng):
return ''.join([v for i,v in enumerate(strng) if v == ' ' or strng.index(v)== i])
并且您不需要创建一个新变量,例如empty
.
推荐阅读
- junit - 我正在编写 Mockito 测试用例,但我在这个测试用例中有一些问题
- sql - 如何使用触发功能将行的值从一列移动到另一列?
- c++ - 仅在父级上更改 QGroupBox 的标题颜色
- python - 属性错误:“列表”对象没有属性“地图”
- ios - `scanFloat` 在 iOS 13.0 中已弃用
- html - 占位符 BEM
- python - 使用列表推导将矩阵相乘
- python-3.x - Windows 上的路径无效
- scala - 使用 H2Database 进行测试时未找到表
- php - 解析错误:语法错误、意外的 'require_once' (T_REQUIRE_ONCE)、期望函数 (T_FUNCTION) 或 const (T_CONST)