<pre><code>>>> a = "15-105;ZH0311;TZZGJJ; ZH0311; ZH0311;DOC"
>>> a = map(str.strip,a.split(';'))
>>> a
['15-105', 'ZH0311', 'TZZGJJ', 'ZH0311', 'ZH0311', 'DOC']
>>> a = sorted(set(a),key=lambda x:a.index(x))
>>> a
['15-105', 'ZH0311', 'TZZGJJ', 'DOC']
>>> ";".join(a)
'15-105;ZH0311;TZZGJJ;DOC'
</code></pre>
<p>我已经使用分裂分裂,然后剥离,以消除额外的空间。我用set来消除重复,但set不关心顺序。所以我需要按顺序排序</p>
<pre><code>>>> def remove_duplication(my_list):
... my_newlist = []
... for x in my_list:
... x = map(str.strip,x.split(';'))
... my_newlist.append(";".join(sorted(set(x),key=lambda y:x.index(y))))
... return my_newlist
...
>>> remove_duplication(a_list)
['15~105;~ PO185-400CT;NGG;DOC', '15~105;-1;NGG;DOC', '15~105;NGG;-10;DOC', '15~55;J205~J208;POI;DOC', '15-105;ZH0305~;WER /;TZZGJJ;DOC', '15-105;ZH0311;TZZGJJ;DOC', '15-115;PL026~ PL028;Dry;PTT']
</code></pre>
<p>如果字符串由空格分隔:</p>
<pre><code>>>> a="# coding: utf-8 "
>>> a= map(str.strip,a.split())
>>> a
['#', ' ', 'coding:', 'utf-8', ' ']
>>> a = " ".join(sorted(set(a),key=lambda x:a.index(x)))
>>> a
'# coding: utf-8'
</code></pre>
<p><code>split</code>拆分某个分隔符上的字符串,它可以是空格punchuatation或字符,也可以是任何内容。<br/></p>
<p>看了所有这些文件,你就会明白了。<a href="https://docs.python.org/2/library/stdtypes.html" rel="nofollow">Built-in types</a>,
<a href="https://docs.python.org/2/library/functions.html" rel="nofollow">Built-in function</a></p>