python - 从字符串中删除重复行

标签 python

我对 Python 不是很熟悉。但是,我想从字符串的行中删除重复项。

例如:

str = "aaa
       aaa
       aaa
       abb
       abb
       ccc"

List 是一个排序好的有序列表。

str = "aaa
       abb
       ccc"

我有数百万这样的行。我知道删除重复项的漫长方法,但想知道是否有任何可能的简短形式。

最佳答案

  1. 不要使用 str 作为变量名,因为它是内置类型
  2. 使用'''...'''将多行字符串换行
  3. 在你的情况下使用sortedsetsplit

例如:

In [895]: print '\n'.join(sorted(set(ss.split())))
aaa
abb
ccc

感谢@user2357112 提到,如果你想保留单词出现的顺序,使用OrderedDict:

In [910]: ss = '''zzz #<----------
     ...:        aaa
     ...:        aaa
     ...:        aaa
     ...:        abb
     ...:        abb
     ...:        ccc'''

In [911]: from collections import OrderedDict
     ...: print '\n'.join(OrderedDict.fromkeys(ss.split()))
zzz #here zzz ranks the first
aaa
abb
ccc

关于python - 从字符串中删除重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21963278/

相关文章:

python - 实用程序函数在 Django 中应该放在哪里?

python - 将数组转换为多项式

python - 如何合并 pandas 数据框中的 datetime.date 和 datetime.time 列?

python - 在 IPython 5.x 中跳过历史搜索的长条目

python - 与 Node.js 服务器应用程序通信

python - 如何使用 Pandas 操作 .csv 文件中的数据并访问特定的行和列?

python - 交互式 python

python - 获取列表特定范围内的元素

列表重新格式化中的 Python 列表

python - 通过仅考虑百分位数范围内的值来估计 DataFrameGroupBy 的平均值