Pythonic definition
Pythonic means exploiting the features of the Python language to produce code that is clear, concise, and maintainable.

Pythonic means code that doesn't just get the syntax right but that follows the conventions of the Python community and uses the language in the way it is intended to be used. The style at which code is written can also be interpreted as pythonic described in detail in PEP 8 style guide (too long to list here).

Examples of unpythonic code often come from users of other languages, who instead of learning a Python programming patterns such as list comprehensions or generator expressions, attempt to crowbar in patterns more commonly used in C or java. Loops are particularly common examples of this.

In Java (similar with C)
for i in (i; i < items.length ; i++)
{
     n = items[i];
    ... now do something
}

In Python we can try and replicate this using while loops but it would be cleaner to use
for i in items:
    i.perform_action()

Or, even a generator expression

(i.some_attribute for i in items)

So essentially when someone says something is unpythonic, they are saying that the code could be re-written in a way that is a better fit for pythons coding style.

Typing "import this" at the command line gives a summary of Python principles.

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!