Bueno, Python no tiene interfaces, tiene metaclases, y permite escribir pato. Python tiene listas de comprensión, que son muy poderosas y no existen en Java. Java tiene un sistema de tipo rico con muchas estructuras de datos, y Python solo tiene listas. Entonces, si está aprovechando lo que tiene Python en lugar de intentar recrear lo que Java tiene en Python, probablemente esté escribiendo código Pythonic.
Pero en lo que respecta al código OO, hay ciertos fundamentos de estilo que no deberían cambiar de un idioma a otro: siempre debe esforzarse por escribir código que sea tímido y SECO, ya sea que esté escribiendo en Applescript, Python, Java o C ++.
----Editar----
Como @delnan señala pedagógicamente, en realidad hay CINCO tipos de datos compuestos definidos por Python en el nivel de Kernel (list, dict, tuple, set y frozenset, según mi copia de "Python in a Nutshell"). Si bien esto es cierto, en realidad no es relevante para el punto que estoy tratando de hacer: Python se basa en listas como la estructura de datos esencial. Sí, PUEDE usar una lista como una pila, pero puede usar exactamente la misma lista que una cola. Y luego una pila de nuevo.
Java, por otro lado, tiene una estructura de datos del núcleo (matriz, de acuerdo con la "Guía de bolsillo de Java"), pero en general, no se puede hacer mucho en Java sin importar colecciones. Una vez que haga eso, tendrá acceso a una biblioteca de tipos 'rica' (en este sentido me refiero a inmensamente compleja) con la que obtener la misma funcionalidad que tenía con la lista de Python.
Por supuesto, ambos idiomas tienen clases y Java tiene interfaces, pero si bien son tipos de datos compuestos, en realidad no son estructuras de datos en el sentido de un libro de texto.
Una diferencia es que no puede hacer estallar un elemento de una cola de Java, y no puede pasar un objeto de cola de Java a un lugar que espera una lista enlazada de Java. Tal vez por "rico" me refiero a "rígido".
Entonces, para explicar lo que quiero decir al decir "Python solo tiene listas", lo que quiero decir es que puedes hacer casi todo lo que necesitas hacer en Python que harías con las Colecciones de Java usando el tipo de Lista de Pythons. Este tipo único hace el trabajo de muchos tipos en Java.
¿Qué significa esto para el programador de Python? Significa que puede aprovechar el tipo de Lista de Python para escribir código directo y muy concisa sin el uso de bibliotecas adicionales, y la concisión (es decir, la característica de transmitir más valor en menos caracteres) es una característica central del código "Pythonic" .