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']
如何将这些字符串转换成字符集?
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']
如何将这些字符串转换成字符集?
c = ['a,b,c', 'a,b,c', 'a,b']
print (set (''.join (c).replace (',', '')))
不适用于长度> 1的结果(例如'a,b,cd') – bluepnume
但OP询问“如何将这些字符串转换为字符集?”,而不是字符串集。但我不知道。 – Hyperboreus
当然。我可能会这样做,以节省字符串替换操作:'set(','。join(c).split(','))' – bluepnume
>>> 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'])
c = ['a,b,c','a,b,c','a,b']
result = set()
for item in c:
result.update(item.split(','))
print result
这里就是我所做的:
result
这样我们就可以在c
和每个result
镶有值从分割字符串因为result
是一组,它不能包含同一项目的多个实例。所以当我们拨打result.update()
时,任何重复的条目都会被自动忽略。
如果要排序像你期望的输出结果,你必须做到以下几点,因为集合是无序的:
result = list(result)
result.sort()
print result
列表有一个内置的排序方法。因此,从该集合创建一个列表,然后调用sort()
将对列表进行排序,这意味着它不会返回任何内容,但会修改列表本身。这样做会给你['a', 'b', 'c']
这就是你想要的问题。
你为什么要更换'''?它不存在于字符串中。 – Keith
另外,每次迭代都会覆盖您的'b'。你从哪里得到'c'? – Keith
@约翰史密斯:我认为你不理解。 '''不在列表中。用''''括起来的对象是一个字符串。 '''只是告诉你,那就是它。我想你想问的问题是“我怎么样)将这些字符串转换成字符集并且b)找到所有这些集合的交集。” –