Python'un sözlükleri için bir referans kullanılan karmaların çoğunda, perl için yeniyim. Fark ettiğim bir fark, karmaların elementlerin sırasını korumamasıdır. İkisi arasında daha somut ve temel farklılıklar olup olmadığını bilmek isterim.perl's hash ve python 'nun sözlükleri arasındaki fark
cevap
En temel fark, orada olmayan öğelere erişiyorsanız, perl karmalarının hata atmamasıdır.
$ python -c 'd = {}; print d["a"]'
Traceback (most recent call last):
File "<string>", line 1, in <module>
KeyError: 'a'
$ perl -e '$d = {}; print $d->{a}'
$
Perl o python
sizi dışarı yakalayacak ana şeyler perl
edilir dönüştürme Eğer oto de piton
$ python -c 'd = dict(); d["a"]["b"]["c"]=1'
Traceback (most recent call last):
File "<string>", line 1, in <module>
KeyError: 'a'
$ perl -e '$d = {}; $d->{a}{b}{c}=1'
$
aksine öğeleri oluşturmak sağlamalarının.
Sıkı kullanmalısınız; zaten tüm Perl betiklerinde uyarıları kullan. Bu da bu farklılıklardan bazılarını kaldıracaktır. Bence, önemli farklılıkların çoğunun, dillerin diğer kısımlarında, Python'un “her şey bir nesne” paradigması ve istisna işleminde olduğu gibi olduğunu göreceksiniz. – tripleee
@triplee 'sıkı kullanın; uyarıları kullan; 'bu durumda herhangi bir fark yaratmaz, tanımlanmamış değişkenler, tanımlanmamış sözlük öğeleri kullanmamızı yasaklar. – ZyX
Perl davranışını Python'da 'collections.defaultdict' ile taklit edebilirsiniz, ancak yine de nesne türleri hakkında endişelenmeniz gerekiyor. –
Diğer önemli fark, Python'da (kullanıcı tanımlı) nesneleri, sözlük anahtarlarınız olarak kullanabilmenizdir. Sözlükler bunu yönetmek için '__hash__
ve __eq__
yöntemlerini kullanır.
Perl'de, nesneleri varsayılan olarak karma anahtarları olarak kullanamazsınız. Anahtarlar, dizeler olarak depolanır ve anahtar olarak kullanmaya çalışırsanız nesneler dizelere enterpole edilir. (Ancak, nesneler, anahtar olarak Tie::RefHash gibi bir modülle bağlı bir karma kullanarak kullanılabilir.)
- 1. Boş hash ile no hash arasındaki fark
- 2. PHP'de, hash ve mhash arasındaki fark nedir?
- 3. Nasıl Python iki sözlükleri arasındaki farkı alınır?
- 4. Python - os.access ve os.path.exists arasındaki fark nedir?
- 5. sözlüklerin python sözlükleri
- 6. python: sözlükleri listesine okuyabilir ve bölebilirsiniz
- 7. Python 3.3 hash işlevi, oturumlar
- 8. io.open - open in python arasındaki fark
- 9. os.path.isdir() kullanırken './' ve '../' arasındaki fark nedir?
- 10. Sözlükleri kullanarak en kısa yol algoritması [Python]
- 11. XeLaTeX ve pdfLaTeX arasındaki fark
- 12. javax.sql ve java.sql arasındaki fark?
- 13. netTcpContextBinding ve netTcpBinding arasındaki fark
- 14. Sürücü ve sağlayıcı arasındaki fark
- 15. HttpCookie ve Çerez arasındaki fark?
- 16. typedef arasındaki fark ve tanımlamak
- 17. Python'da {} ve [] arasındaki fark nedir?
- 18. Dize [] ve [dize] arasındaki fark
- 19. Redis ve kafka arasındaki fark
- 20. mapM ve forM arasındaki fark
- 21. ASCIIEncoding ve Encoding Arasındaki Fark
- 22. NSLog ve DLog arasındaki fark
- 23. jsRender ve jsViews arasındaki fark
- 24. UNIX'teki $ @ ve $ * arasındaki fark nedir?
- 25. java.util.Scanner ve java.util.Scanner arasındaki fark. *
- 26. ServiceProcessInstaller ve ServiceInstaller arasındaki fark
- 27. string.h ve strings.h arasındaki fark
- 28. dtrtrs ve dtrsm arasındaki fark
- 29. Kodlama ve harmanlama arasındaki fark?
- 30. IsGenericType ve IsGenericTypeDefinition arasındaki fark
Python sözlükleri öğelerin sırasını da korumaz. –
Python sözlükleri öğelerin sırasını korumaz; hash tabloları olarak uygulanmaktadır. – Philipp