Python'daki listeler, diziler ve kümeler arasındaki fark nedir?


cevap 1:

Listeler:

Aşağıdaki özelliklere sahip yerleşik bir tip.

  • Maksimum sys.maxsize öğesiyle değişken uzunluk Öğeler herhangi bir şey olabilir - yerleşik türler, özel türler, vb; Öğelerin yıkanabilir olması için herhangi bir gereklilik yoktur. Öğeler bir liste içinde tekrarlanabilir listede istediğiniz herhangi bir değeri saklayabilirsiniz, listedeki her bir öğe başka bir nesneye referans olarak saklanır. Listeler yalnızca tamsayı ile dizine eklenir. Listeler yinelenebilir - yani bir for döngüsü yazabilirsiniz. sipariş edilen kap (içerikteki gibi sipariş edilen, geliştirici tarafından verilen sırayı korur) - bu, sıralananla aynı değildir.

Listelerin çok sayıda kullanım örneği vardır: bir inetereger dizinli kapsayıcıya her ihtiyaç duyduğunuzda, listenin ilk seçeneğiniz olması muhtemeldir.

Diziler:

Dizi modülünün yerleşik bir parçası değil.

  • Maksimum sys.maxsize öğesiyle değişken uzunluk Öğeler yalnızca "sayısal" olabilir - tamsayı, kayan sayı veya karakter. Tamsayılar ve şamandıralar imzalı, imzasız uzun ve kısa olarak tanımlanmalıdır. Karakterler yalnızca unicode'dur. Şamandıralar tek veya çift duyarlıklıdır.Tüm elemanların yıkanabilmesi için herhangi bir gereklilik yoktur (tüm nümerikler yine de). Dizi oluşturulduğunda bir dizinin tutabileceği türü tanımlarsınız. Listedeki her öğe bellekte sayısal değer olarak depolanır (bir nesneye başvuru olarak değil. Diziler yalnızca tamsayı tarafından dizine eklenir. Diziler yinelenebilir - yani yazabilirsiniz a for loop.arrays, verimli bir homojen (tek tip) sıralı dizinlenmiş kapsayıcıdır (içerikteki gibi geliştirici tarafından verilen sırayı korur) - bu, sıralananla aynı değildir.

arraysareprimarilydesignedforpassingdataacrossCtypeinterfacesorbinarydata.Theyarenotafastreplacementsforlistsunlessyoucanguaranteethatyourelementsarewithintherelevantrange;forinstanceanarraywithtypecodeQcannotstoreintegerslargerthan2641(unsignedlonglong),althoughPythonintegersareeffectivelyunlimited(andthereforeconsiderablylargerthanthearraycanhold).arrays are primarily designed for passing data across C type interfaces or binary data. They are not a fast replacements for lists - unless you can guarantee that your elements are within the relevant range; for instance an array with type code ‘Q’ cannot store integers larger than 2^{64}–1 (unsigned long long), although Python integers are effectively unlimited (and therefore considerably larger than the array can hold).

Setler:

Aşağıdaki özelliklere sahip yerleşik bir tip.

  • Maksimum sys.maxsize öğesiyle değişken uzunluk Elemanlar, yıkanabilir oldukları sürece herhangi bir değer veya nesne olabilir; örnek dizeleri için, sayılar ve tuples bir kümeye yerleştirilebilir, ancak listeler, örneğin sözlükler yerleştirilemez. Özel tipler yıkanabilir hale getirilebilir.Eller bir set içinde tekrarlanamaz; Öğeler aynı küme içindeki türlerin bir karışımı olabilir.Kümedeki her öğe bir nesneye başvuru olarak saklanır. kümeler dizinlenebilir kümeler yinelenemez - yani bir for döngüsü yazabilirsiniz. heterojen (karışık tipler) sırasız (geliştirici yinelendiğinde verilerin sırası üzerinde kontrol sahibi değildir.) yıkanabilir tipler için endekslenmeyen benzersiz kap.

Kümeler öncelikle benzersiz elemanların dizilerini oluşturmak için tasarlanmıştır.