2016-04-11 2 views
0

Gibt es eine Möglichkeit, den folgenden Code durch Python-Listenverständnis auszudrücken?Python-Listenverständnis für if-else-Anweisungen

newlist = [] 
for i,j in enumerate(old_list): 
if i==0: 
    newlist.append(j*2+1) 
else: 
    newlist.append(j*2) 
+0

Verwenden einen bedingten Ausdruck: '[j * 2 + 1, wenn nicht ich sonst j * 2 für i, j in enumerate (alte_liste)] ' –

Antwort

2

Sicher, warum nicht?

[j*2+1 if i==0 else j*2 for i, j in enumerate(old_list)] 
1

ich tun würde, es mit einem Inline-if, wie folgt aus:

newlist = [j * 2 + (1 if i == 0 else 0) for i, j in enumerate(old_list)]