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']
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']
あなたがあなたの質問で望んでいたものがあなたに与えられます。
>>> 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']
print (set (''.join (c).replace (',', '') ) )