Code: Alles auswählen
data = [[(23, 'Alpha'), (42, 'Bravo')], [(11, 'Charlie')], [(12, 'Delta'), (13, 'Echo')]]
Der von einer anderen Programmiersprache kommende Newbie löst das so:
Code: Alles auswählen
def get_ids_newbie(data):
ids = []
for i in range(len(data)):
for j in range(len(data[ i])):
element = data[ i][j]
ids.append(element[0])
return ids
Code: Alles auswählen
def get_ids_beginner(data):
ids = []
for group in data:
for element in group:
ids.append(element[0])
return ids
Code: Alles auswählen
def get_ids_advanced(data):
ids = [element[0] for group in data for element in group]
return ids
Code: Alles auswählen
from itertools import chain
def get_ids_profi(data):
return [element[0] for element in chain(*data)]
Gefährlich wird es nur, wenn man in der Standardbibliothek andere Dinge findet und die als geeignet ansieht:
Code: Alles auswählen
import re
def get_ids_braindamaged(data):
return eval('[' + re.sub(r'[^\d,]+,?', '', repr(data)) + ']')