0
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']

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

4

3 回答 3

6
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. result使用拆分字符串的值更新集合
  4. 打印结果

因为result是一个集合,它不能包含同一项目的多个实例。所以当我们调用result.update()任何重复的条目时,都会被自动忽略。

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

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

列表有一个内置的排序方法。因此,从集合中创建一个列表然后调用sort()它会对列表进行适当的排序,这意味着它不会返回任何内容,而是修改列表本身。这样做会给你['a', 'b', 'c']你想要的问题。

于 2012-12-08T23:08:14.407 回答
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'])
于 2012-12-08T22:58:00.250 回答
3
c = ['a,b,c', 'a,b,c', 'a,b']
print (set (''.join (c).replace (',', '') ) )
于 2012-12-08T22:52:18.643 回答