Bene, Python non ha interfacce, ha metaclassi e consente la digitazione di anatra. Python ha una comprensione delle liste, che sono molto potenti e non esistono in Java. Java ha un sistema di tipo ricco con molte strutture di dati e Python ha solo elenchi. Quindi se stai sfruttando ciò che ha Python invece di provare a ricreare ciò che Java ha in Python, probabilmente stai scrivendo codice Pythonic.
Ma per quanto riguarda il codice OO, ci sono alcuni fondamenti di stile che non dovrebbero cambiare da una lingua all'altra: dovresti sempre cercare di scrivere codice che sia Timido e SECCO, sia che tu stia scrivendo in Applescript, Python, Java o C ++.
----Modificare----
Come sottolinea pedonicamente @delnan, in realtà ci sono CINQUE tipi di dati compositi definiti da Python a livello di kernel (elenco, dict, tuple, set e frozenset, secondo la mia copia di "Python in a Nutshell"). Anche se questo è vero, in realtà non è rilevante per il punto che sto cercando di chiarire: Python si basa sugli elenchi come struttura di dati essenziale. Sì, PUOI utilizzare un elenco come stack, ma puoi utilizzare lo stesso elenco esatto di una coda. E poi ancora una pila.
Java, d'altra parte, ha una struttura di dati del kernel (Array, secondo "The Java Pocket Guide), ma in generale, non puoi fare molto in Java senza importare le raccolte. Una volta fatto, hai accesso in una libreria di tipi "ricca" (nel senso che intendo immensamente complessa) con cui ottenere la stessa funzionalità che hai avuto con l'elenco di Python.
Naturalmente, entrambe le lingue hanno classi e Java ha interfacce, ma mentre quelli sono tipi di dati compositi, in realtà non sono strutture di dati nel senso di un libro di testo.
Una differenza è che non è possibile estrarre un elemento da una coda Java e non è possibile passare un oggetto Coda Java da qualche parte in attesa di un elenco collegato Java. Quindi forse per "ricco" intendo in realtà "rigido".
Quindi, per spiegare cosa intendo dicendo "Python ha solo elenchi", ciò che intendo è che puoi fare praticamente tutto ciò che devi fare in Python che faresti con le raccolte Java usando il tipo Elenco Pythons. Questo singolo tipo funziona in moltissimi tipi in Java.
Cosa significa questo per il programmatore Python? Significa che puoi sfruttare il tipo di Elenco Python per scrivere codice molto pithy, diretto senza l'uso di librerie aggiuntive - e la pithiness (ovvero la caratteristica di trasmettere più valore in meno caratteri) è una caratteristica fondamentale del codice "Pythonic" .