list
Python'da bir dosya isimlerim var ve tüm dosya isimlerinden bir tane oluşturmak istiyorum set
.
filelist=[]
for filename in filelist:
set(filename)
Bu işe yaramıyor gibi görünüyor. Bunu nasıl yapabilirim?
list
Python'da bir dosya isimlerim var ve tüm dosya isimlerinden bir tane oluşturmak istiyorum set
.
filelist=[]
for filename in filelist:
set(filename)
Bu işe yaramıyor gibi görünüyor. Bunu nasıl yapabilirim?
Yanıtlar:
Yıkanabilir nesnelerin bir listeniz varsa (dosya adları muhtemelen dizeler olacaktır, bu nedenle sayılmalıdır):
lst = ['foo.py', 'bar.py', 'baz.py', 'qux.py', Ellipsis]
seti doğrudan oluşturabilirsiniz:
s = set(lst)
Aslında, herhangi bir yinelenebilir nesneset
ile bu şekilde çalışacaktır ! (Ördek yazmak iyi değil mi?)
Tekrarlı olarak yapmak istiyorsanız:
s = set()
for item in iterable:
s.add(item)
Ancak nadiren bu şekilde yapılması gerekir. Sadece bahsettiğim için set.add
yöntem oldukça faydalı.
y = set(x)
En doğrudan çözüm şudur:
s = set(filelist)
Orijinal kodunuzdaki sorun, değerlerin kümeye atanmamış olmasıdır . Kodunuzun düzeltilmiş sürümü:
s = set()
for filename in filelist:
s.add(filename)
print(s)
Yapabilirsin
my_set = set(my_list)
veya Python 3 için,
my_set = {*my_list}
listeden bir küme oluşturmak için. Tersine, ayrıca
my_list = list(my_set)
veya Python 3 için,
my_list = [*my_set]
kümeden bir liste oluşturmak için.
Listedeki öğelerin sırasının, bir kümenin doğası gereği sıralı olmadığı için liste bir kümeye dönüştürülürken genellikle kaybolduğunu unutmayın. (CPython'daki bir istisna, liste yalnızca negatif olmayan tamsayılardan oluşuyor gibi görünüyor, ancak bunun CPython'daki kümelerin uygulanmasının bir sonucu olduğunu ve bu davranışın farklı Python uygulamaları arasında değişebileceğini varsayıyorum.)