Path: csiph.com!news.mixmin.net!weretis.net!feeder1.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Thomas 'PointedEars' Lahn Newsgroups: comp.lang.python Subject: Re: Simple exercise Date: Thu, 10 Mar 2016 17:05:49 +0100 Organization: PointedEars Software (PES) Lines: 33 Message-ID: <4942558.HO6WSNh2JR@PointedEars.de> References: <15045007.7fdgliee2q@PointedEars.de> Reply-To: Thomas 'PointedEars' Lahn Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Trace: solani.org 1457625951 727 eJwFwQkBwDAIA0BLNBAeOR0F/xJ2R/XjHeZ043KXNW/rm4sWScecfIjDxuDW3hSaLjIaUqU/KBgQ2w== (10 Mar 2016 16:05:51 GMT) X-Complaints-To: abuse@news.solani.org NNTP-Posting-Date: Thu, 10 Mar 2016 16:05:51 +0000 (UTC) User-Agent: KNode/4.14.2 X-User-ID: eJwNyMkBwDAIA7CVuIyzToCw/witnoKnZjMSGVisdg7LBlxRF1mVvUWddnErUv09bSeAW3O2e1CH/zyzkA9P+hVz Cancel-Lock: sha1:4YxWc+HUKtv7FH9f3UMnQzg3sPw= X-NNTP-Posting-Host: eJwFwYEBwDAEBMCVCP8YpxH2H6F3MCo7nKBjsdobZwobZZLKd3gfIPn5CZNm5C2b6GGXZf0LQxBi Xref: csiph.com comp.lang.python:104529 Thomas 'PointedEars' Lahn wrote: [ > key = m.group(1) > value = int(m.group(2)) > > if key not in od: > od[key] = value > else: > od[key] += value > > But there is probably an even more pythonic way to do this. ] For example, based on the original code: recs = int(input()) od = OrderedDict() items = [] for _ in range(recs): file_input = sys.stdin.readline().strip() m = re.search(r"(\w.+)\s+(\d+)", file_input) if m: items.append(m.group(1, 2)) od = OrderedDict(map(lambda item: (item[0], 0), items)) for item in items: od[item[0]] += item[1] -- PointedEars Twitter: @PointedEars2 Please do not cc me. / Bitte keine Kopien per E-Mail.