SORU
19 AĞUSTOS 2015, ÇARŞAMBA


Yazma kompakt (==c veya c == b == b c a a b a)

Daha kompakt ya da pythonic bir şekilde Boole ifadesini yazın

a   b == c or a   c == b or b   c == a

Ben ile geldi

a   b   c in (2*a, 2*b, 2*c)

ama bu biraz garip.

CEVAP
19 AĞUSTOS 2015, ÇARŞAMBA


Eğer Python Zen bakacak olursak, benim vurgu:

Tim Peters tarafından Python Zen,

Güzel çirkin daha iyidir.
Açık örtülü daha iyidir.
Basit Karmaşık daha iyidir.
Karmaşık karmaşık daha iyidir.
Düz iç içe daha iyidir.
Seyrek yoğun daha iyidir.
Okunabilirlik sayar.
Özel durumlarda kuralları kırmak için yeterince özel değil.
Pratiklik saflık atıyor olsa da.
Hataları asla sessizce geçmesi gerekir.
Açıkça Susturuldu sürece.
Belirsizlik karşısında, günaha sanırım reddediyorum.
Bir ... ve tercihen sadece bunu yapmak için bir ... belirgin bir yolu olmalı.
Bu şekilde Hollanda değilsen ilk başta açık olmayabilir rağmen.
Şimdi hiç olmamasından daha iyidir.
Ancak asla genellikle daha iyidirdoğruşimdi.
Eğer uygulama açıklamak zor ise, bu kötü bir fikir.
Eğer uygulaması kolay açıklamak için ise, iyi bir fikir olabilir.
Ad -- bir tane daha yapalım bir korna harika bir fikir!

En Pythonic çözüm en açık, en basit ve en kolay olanı açıklamak için:

a   b == c or a   c == b or b   c == a

Daha da iyisi, hatta bu kodu anlamak için Python bilmeye gerek yok!bukolay. Bu, rezervasyon olmadan, en iyi çözümdür. Başka bir şey var mı entelektüel mastürbasyon.

Ayrıca, kısa devre tüm önerileri tek bir olası en iyi performans gösteren çözüm de vardır. a b == c sadece tek bir toplama ve karşılaştırma yapılır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cdgotx

    cdgotx

    8 Kasım 2011
  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • Manuel Vizcaino

    Manuel Vizca

    27 Mayıs 2008