python将字符串转换为字符集

时间:2012-12-08 22:47:27

标签: python

c=['a,b,c','a,b,c','a,b']
for item in c:
    a=set(item.replace("'",""))
    b=list(a)
print b

它返回:

['a','b',',']

我想要的是:

['a','b','c']

如何将这些字符串转换为字符集?

3 个答案:

答案 0 :(得分:5)

c = ['a,b,c','a,b,c','a,b']
result = set()
for item in c:
  result.update(item.split(','))
print result

这就是我的所作所为:

  1. 创建一个名为result的集合,以便我们可以将值存储在其中
  2. 遍历c中的字符串,对于每个字符串,当我们看到','字符时,我们将其拆分为新的字符串列表。
  3. 使用拆分字符串
  4. 中的值更新result
  5. 打印结果
  6. 由于result是一个集合,因此它不能包含同一项目的多个实例。因此,当我们调用result.update()时,会自动忽略任何重复的条目。

    如果您希望将结果排序为所需的输出,则必须执行以下操作,因为集合是无序的:

    result = list(result)
    result.sort()
    print result
    

    列表具有内置排序方法。因此,从集合中创建列表然后在其上调用sort()将对列表进行排序,这意味着它不会返回任何内容,只会修改列表本身。这样做会在你的问题中为你提供['a', 'b', 'c']

答案 1 :(得分:4)

>>> c=['a,b,c','a,b,c','a,b']
>>> print set(unique for charlist in c for unique in charlist.split(','))
set(['a', 'c', 'b'])

答案 2 :(得分:2)

c = ['a,b,c', 'a,b,c', 'a,b']
print (set (''.join (c).replace (',', '') ) )