Path: csiph.com!news.swapon.de!eternal-september.org!feeder.eternal-september.org!newsfeed1.swip.net!uio.no!news.tele.dk!news.tele.dk!small.news.tele.dk!newsgate.cistron.nl!newsgate.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.018 X-Spam-Evidence: '*H*': 0.96; '*S*': 0.00; '*is*': 0.09; 'iterate': 0.09; 'namespace': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'python.': 0.11; 'subject:python': 0.14; '*values*': 0.16; 'bad:': 0.16; 'boring,': 0.16; 'deleted,': 0.16; 'dictionary,': 0.16; 'illustrating': 0.16; 'iterated': 0.16; 'pairs,': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'wrote:': 0.16; 'programmer': 0.18; 'variable': 0.18; '(not': 0.20; '2015': 0.20; 'trying': 0.22; 'appears': 0.23; 'paul': 0.24; 'header:User-Agent:1': 0.26; 'header:X-Complaints-To:1': 0.26; 'clean.': 0.29; 'that.': 0.30; "we're": 0.30; 'code': 0.30; 'programmers': 0.30; 'knows': 0.32; 'though,': 0.32; "d'aprano": 0.33; 'hopefully': 0.33; 'impression': 0.33; 'steven': 0.33; 'ones': 0.35; 'but': 0.36; 'should': 0.36; 'to:addr:python-list': 0.36; 'subject:: ': 0.37; 'say': 0.37; 'received:org': 0.37; 'why': 0.39; "didn't": 0.39; 'to:addr:python.org': 0.40; 'ever': 0.60; 'your': 0.60; "you'll": 0.61; 'to,': 0.63; 'goal': 0.64; 'intent': 0.66; 'readers': 0.66; 'thursday': 0.66; 'here': 0.66; 'life': 0.67; 'obvious': 0.76; '_o__)': 0.84; 'idiomatic': 0.84; 'mistaken': 0.84; 'monotonous,': 0.84; 'received:125': 0.84; 'dare': 0.91; '\xe2\x80\x9cthe': 0.93 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Ben Finney Subject: Re: Idiosyncratic python Date: Thu, 24 Sep 2015 16:54:14 +1000 References: <560391ea$0$2885$c3e8da3$76491128@news.astraweb.com> <87twqkbavx.fsf@jester.gateway.sonic.net> <560399b0$0$1511$c3e8da3$5496439d@news.astraweb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Gmane-NNTP-Posting-Host: jigong.madmonks.org X-Public-Key-ID: 0xAC128405 X-Public-Key-Fingerprint: 517C F14B B2F3 98B0 CB35 4855 B8B2 4C06 AC12 8405 X-Public-Key-URL: http://www.benfinney.id.au/contact/bfinney-pubkey.asc X-Post-From: Ben Finney User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) Cancel-Lock: sha1:Jzs5cA5DPjm76BzGLneGaQjA5EU= X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 32 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1443077665 news.xs4all.nl 23764 [2001:888:2000:d::a6]:44908 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:97063 Steven D'Aprano writes: > On Thursday 24 September 2015 16:16, Paul Rubin wrote: > > > Steven D'Aprano writes: > >> for k, v in mydict.items(): > >> del(k) > > […] The obvious intent is to iterate over the *values* of the > dictionary, but the coder didn't know about values, so he iterated > over (key,value) pairs, then deleted the key local variable (not the > key in the dict!) to keep the namespace clean. That's not obvious to me. It's plausible, now that you say it. I find it also plausible, though, that the author is under the mistaken impression that the key and value must both be deleted, and has found a way that appears to do that. Perhaps what we're illustrating here is exactly why such idiosyncratic code *is* bad: it obscures the intent of the code for programmers who know idiomatic Python. And those readers are hopefully the ones the author should be trying to communicate to, on the theory that we've all got the goal to become a programmer who knows idiomatic Python. -- \ “The fact of your own existence is the most astonishing fact | `\ you'll ever have to confront. Don't dare ever see your life as | _o__) boring, monotonous, or joyless.” —Richard Dawkins, 2010-03-10 | Ben Finney