Python: Her kullanmalıdır ne (1,2,3) ve [1,2,3] arasındaki fark, ve?

oy
44

Birçok yerde, (1,2,3)ve [1,2,3]birbirlerinin yerine kullanılabilirler.

Ne zaman bir ya da diğer ve neden kullanmalıyım?

Oluştur 05/08/2008 saat 08:18
kaynak kullanıcı
Diğer dillerde...                            


14 cevaplar

oy
31

Gönderen Python SSS :

Listeler ve küpe, bir çok açıdan benzer iken, genel olarak temelde farklı şekillerde kullanılmaktadır. Demetler Pascal kayıtları veya C yapılar benzer olarak düşünülebilir; bir grup olarak ameliyat farklı tipte olabilir, ilgili küçük veri koleksiyonları konum. Örneğin, bir Kartezyen uygun iki ya da üç sayı bir başlığın olarak temsil edilir koordine ederler.

Listeler, diğer taraftan, daha başka dilde diziler gibidir. Bunlar aynı türde ve bir-birer ameliyat bunların tümü nesnelerin değişen sayıda tutmak eğilimindedir.

Genellikle Kongre tarafından sadece onun (im) mutability dayalı bir liste ya da bir demet tercih olmaz. Sen tam gelişmiş sınıf çok ağır olacağını veri tamamen farklı parçalarının küçük koleksiyonları için bir kayıt düzeni ve verilerin homojen bir set var makul büyüklükte koleksiyonları için bir liste seçsin.

Cevap 05/08/2008 saat 14:22
kaynak kullanıcı

oy
19

Liste [1,2,3] dinamik ve esnek olduğu ama esneklik bir hız ücrete tabidir.

tuple (1,2,3) sabitlenir (iletmenin) ve dolayısıyla daha hızlı bir.

Cevap 05/08/2008 saat 08:27
kaynak kullanıcı

oy
11

Tuples oluşturmanın hızlı \ esnek bir yöntemdir kompozit veri tiplerini. Listeler de, konteynerleri, nesnelerin listeleridir.

Örneğin, bir sınıfta öğrenci detayların listesini saklamak için bir Listesini kullanmak.

Bu listede Her öğrenci detay onların rulo numarasını, adını ve test puanı içeren 3-lü olabilir.

`[(1,'Mark',86),(2,'John',34)...]`

tuplelar değiştirilemez, çünkü Ayrıca, sözlüklerde tuşları olarak kullanılabilir.

Cevap 07/08/2008 saat 12:21
kaynak kullanıcı

oy
7

küpe kavramı son derece etkileyici:

  • Pragmatik olarak, onlar değerlerini paketlenip açılması için mükemmeldir ( x,y=coord).

  • sözlük (karma tablolar) ile kombinasyon halinde olarak, başka bir şekilde bağlantılı bir çok seviyelerini gerektirir haritalama formları sağlar. Örneğin, (x, y) bulunmuştur ki, işaretleme düşünün.

    // PHP
    if (!isset($found[$x])) {
        $found[$x] = Array();
        $found[$x][$y] = true;
    } else if (!isset($found[$x][$y])) {
        $found[$x][$y] = true;
    }
    
    # Python
    found[(x,y)] = True # parens added for clarity
    
  • Listeler içeriği ile ilgili işlemlerin beklentisi ile kullanılmalıdır (dolayısıyla çeşitli değişmezlik söz). Bir listesiyle birlikte sonra insert, vb, itmek, ek, dilim, arama pop önce eklemek isteyecektir.

  • Demetler bir basit karşılaştırmalar yapılmış nesnenin, ya da bu tür n'inci elemanı ya da, n, örneğin, daha önce verilen koordinatlar, örnek olarak, tahmin edilebilir bir şekilde elemanları, ayıklanması gibi işlemlerin bir alt düzey temsil etmelidir.

  • Son olarak, listeler hashable değildir, bu nedenle sözlükleri ile yapılan eşleme türü (Perl karma tablolar, PHP ilişkisel diziler) dizilerini ile yapılmalıdır.

    İşte birlikte en sonunda küpe ve sözlükler, basit bir örnek:

    """
    couple is a tuple of two people
    doesLike is a dictionary mapping couples to True or False
    """
    couple = "john", "jane"
    doesLike = dict()
    doesLike[couple] = True
    doesLike["jane", "john"] = False # unrequited love :'(
    
Cevap 15/08/2008 saat 19:00
kaynak kullanıcı

oy
4

[1, 2, 3]biri ekleyebilir veya öğeleri silmek hangi bir listedir.
(1, 2, 3)bir kere tanımlanmış olan bir demet olup, modifikasyon yapılamaz.

Cevap 25/06/2011 saat 12:14
kaynak kullanıcı

oy
3

Ben dizilerini kullanmak - İçeri iletilen değerleri değişmez fonksiyonu istiyorsanız zaman ben bir işleve öğelerin bir koleksiyonunda geçmesi gerekiyor.

Ben değerlerini değiştirmek için işlev yapmak istiyorsanız Else, ben listeyi kullanın.

Her zaman harici kütüphaneleri kullanılarak ve bir işleve değerler listesinde geçmek ve verilerin bütünlüğü konusunda emin değilseniz, bir demet kullanmak gerekir eğer.

Cevap 15/08/2008 saat 17:38
kaynak kullanıcı

oy
2
  • iletmenin çünkü Bir demet, sözlükte bir anahtarı temsil edebilir.
  • Sıralı erişimi gerekmez verilerin bir koleksiyonunuz varsa listeleri kullanın.
Cevap 20/05/2017 saat 07:30
kaynak kullanıcı

oy
2

Bir konsol ve çalıştırma piton açın. Bunu dene:

  >>> list = [1, 2, 3]     
  >>> dir(list)
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delsli
    ce__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getit
    em__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__',
     '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__r
    educe__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__'
    , '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 
'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

: Eğer son satırı listesinde var Aşağıdaki yöntemler son görebilirsiniz gibi 'ekleme', 'sayım',,,,,, 'pop' 'insert' 'indeks' 'uzatmak' 'kaldır' 'ters', 'sort '

Şimdi demet için aynı deneyin:

>>> tuple = (1, 2, 3)
>>> dir(tuple)
    ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
    format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__get
    slice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__
    lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__'
    , '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

Sadece 'sayım' ve 'indeks' liste yöntemlerinden burada görünür.

tuplelar değiştirilemez ve herhangi bir değişiklik desteklemez olmasıdır. Bunun yerine iç uygulamasında basit ve hızlıdır.

Cevap 10/10/2015 saat 19:30
kaynak kullanıcı

oy
2

Diğerleri de söylediğim gibi, Listeler ve küpe piton nesneleri saklamak için kullanılabilecek hem kaplardır. Listeler genişletilebilir ve diğer taraftan tuplelar değiştirilemez üzerinde bunların içeriğini, atama ile değiştirebilirsiniz.

Ayrıca, listeler küpe can oysa bir sözlükte tuşları olarak kullanılamaz.

Cevap 08/08/2008 saat 07:06
kaynak kullanıcı

oy
1

(1,2,3) ve [1,2,3] nadir koşullarda birbirinin yerine kullanılabilir.

Yani (1,2,3) bir başlık olur ve sabittir. Yapmak istediğiniz her türlü değişiklik nesne üzerine yazmak gerekir.

[1,2,3] listesidir ve elemanlar eklenen ve çıkarılabilir.

Liste bir demet daha fazla özelliğe sahip.

Cevap 31/03/2018 saat 09:14
kaynak kullanıcı

oy
1

[1,2,3] bir listedir.

(1,2,3) tuple ve sabittir.

Cevap 08/10/2014 saat 07:02
kaynak kullanıcı

oy
1

Eğer küpe ile çalışan bir çözüm bulabiliriz Eğer değişmezlik sürücüler aşağı daha işlevsel bir yol hangi tür zorlar gibi, bunları kullanmak. Neredeyse işlevsel / değişmez yolda gidiyor asla pişman.

Cevap 08/08/2008 saat 07:48
kaynak kullanıcı

oy
0

(1,2,3)Bir başlık olur ve [1,2,3]bir listedir. Ikisinin Ya sayıların dizileri temsil fakat tuplelar değiştirilemez ve liste değişken Python nesneleri unutmayın.

Cevap 27/06/2016 saat 20:48
kaynak kullanıcı

oy
0

(1,2,3)tuple süre olan [1,2,3]bir listedir. Bir liste kesilebilir ise Bir demet değişmez bir amacıdır.

Cevap 19/02/2016 saat 02:15
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more