2016-06-13 10 views
0

Ich möchte eine Liste mit einem variablen Teil erstellen:erstellen Sie eine Liste mit einem variablen Teil

mylist = ['a1','a2','a3','a4','a5'] 

Ich versuche:

i = range(1,5) 
ii = [str(x) for x in i] 

die funktioniert, und dann würde ich gerne tun :

mylist = list('a' + x for x in ii) 

aber das

funktioniert nicht
+0

Der Teil, von dem du denkst, dass es funktioniert, ist eigentlich falsch, und der Teil, von dem du denkst, dass er nicht funktioniert, sieht gut aus für mich. – user2357112

+0

Ich bedauere sehr den Tippfehler in der "Bereichsfunktion". Ich werde das nächste Mal konzentrierter sein. Ich bekomme ein - 'Liste' Objekt ist nicht aufrufbar - Fehler ... – salim

+0

Wenn Sie auf SO, geben Sie nicht Ihren Code ein, kopieren Sie es einfügen. –

Antwort

0

Bereiche sind half-open in Python, also müssen Sie xrange(1,6) verwenden, und obwohl die Verkettung in Ordnung ist (zwischen zwei Strings), können Sie auch str.format verwenden. Sie können über die Zahlen durchlaufen und sie mit xrange (siehe xrange vs range), wie in einer Liste Verständnis zu a in einem Rutsch hängen, dass Sie nicht brauchen zwei temporäre Listen in dem Prozess zu erstellen, wie Sie tut:

>>> [str.format('a{0}', x) for x in xrange(1,6)] 
['a1', 'a2', 'a3', 'a4', 'a5'] 
>>> ['a' + str(x) for x in xrange(1,6)] 
['a1', 'a2', 'a3', 'a4', 'a5'] 
Verwandte Themen