Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Stefan Behnel Newsgroups: de.comp.lang.python Subject: Re: [Python-de] strings zusammensetzen. Date: Sun, 17 Sep 2017 11:14:51 +0200 Lines: 25 Message-ID: References: <9gjg7e-jn3.ln1@gate.homenet> <87shflpv3g.fsf@gmx.net> <8a01a32b-a050-e1bb-440d-1a62ae323448@behnel.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de QFUT3231QuOE9hbIe1TQogUk2mmllHw6zzVvPB4dwnNQ== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1505640791; s=domk; d=behnel.de; h=Content-Transfer-Encoding:Content-Language:Content-Type:In-Reply-To: MIME-Version:Date:From:References:To:Subject; bh=kdPRlibLIwXvvMJjIJd+ubv8lSaQ8vgVsoKHf4bSHy0=; b=tpLoMz8IDtA8hYhgxI1QHR+cze93mxPqpkow44CUV0a3X5ZyvYy4ctqWxRpsQr0PpY 4tXFYX6QevSovPWViO7xQCGtfyNxEipLAxV7nvj4ym/oVihEpMCR7nS0WD7rwV+SOaWY aXw3ppi3DieqBLazGUeyuFJX1ogJTzyR5VttU= X-RZG-AUTH: :E1MMdFW4b++AXZOTwA41DOYM0Dv9LNWvavC/fJZqSuoXq8/b35jbpozFABqPas32JtJ5Dqonc6cigw5Cnlmnt3MbX5Z3s5Ju05Sb7bU= X-RZG-CLASS-ID: mo00 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 In-Reply-To: <87shflpv3g.fsf@gmx.net> Content-Language: de-DE X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.24 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <8a01a32b-a050-e1bb-440d-1a62ae323448@behnel.de> X-Mailman-Original-References: <9gjg7e-jn3.ln1@gate.homenet> <87shflpv3g.fsf@gmx.net> Xref: csiph.com de.comp.lang.python:4915 Оlе Ѕtrеісhеr schrieb am 17.09.2017 um 10:50: > "Peter J. Holzer" writes: >> elems = [] >> for i in range(n): >> elems.append(str(i)) >> s = "".join(elems) > > Wenn Du hier schon auf Optimierung achtest: wozu dann erst lie Liste? > Join nimmt jedes Iterable: > > s = "".join(map(str, range(x))) > > Ist kürzer, prägnanter, performanter und deutlich effektiver im > Speicher. Bezüglich "effektiver im Speicher" möchte ich anregen, den Code zu lesen. Intern erzeugt "".join(genexpr) zuerst eine Liste. Das passiert immer, wenn keine Sequenz übergeben wird. Schließlich muss zweimal über diese drüber gelaufen werden können, was bei Iteratoren nicht gegeben ist. Ein Eckchen schneller wird map() hier wohl trotzdem sein, aber wir sollten nicht vergessen, dass so etwas wie das Beispiel oben in der Praxis nur *sehr* selten auftreten dürfte. Stefan