Idioms are indeed important, but TDD won't improve your proficiency (except in that you'll learn a testing framework and be writing more code). Neither will attempting to adhere to a "Functional" style when you've not already learned the important lessons of FP from an actually FP-oriented language. Coding guidelines? Be consistent. Discover the guidelines of the code you're working on and use that. That has nothing to do with python or proficiency.
Performance is probably the last part of proficiency that one has to learn, and arguably the most difficult. A lot of other skills have to come together before one can count "performance" as a point of their proficiency in a language, and most of those skills are really quite language-agnostic. Oh, and if you're focusing on performance but you don't yet know how to properly profile and benchmark, you're not proficient.
If you really want to become a proficient Python programmer (or any other language) try this:
1. Find the documentation
2. Learn how to navigate, search, and read the documentation
3. Find a skilled mentor or some community resource (IRC, mailing-list, website forums, etc)
4. Ask what is considered good code. Read it. Study it.
5. Create a project - little ones, like sorting your MP3 collection or mining your email for statistics.
6. Try to use the lessons learned in the code you've studied when writing your project.
7. lather, rinse, repeat. Chances are, you're not proficient until you're doing it for several hours every day - and even then, you're probably not really "proficient"... yet.
/rant off