# aliments_1

def aliments_1(aliments_racions):
    sr = 0
    for ar in aliments_racions:
        if ar[0] in ('fruita', 'verdura'):
            sr = sr + ar[1]
    return sr

# aliments_2

def aliments_2(aliments_racions):
    fruites_verdures = filtra_fruita_verdura(aliments_racions)
    racions = aplica_racio(fruites_verdures)
    sr = sum(racions)
    return sr

def filtra_fruita_verdura(aliments_racions):
    fv = []
    for ar in aliments_racions:
        if ar[0] in ('fruita', 'verdura'):
            fv.append(ar)
    return fv

def aplica_racio(fruites_verdures):
    rs = []
    for ar in fruites_verdures:
        r = ar[1]
        rs.append(r)
    return rs

# aliments_3

def aliments_3(aliments_racions):
    fruites_verdures = filtra(fruita_verdura, aliments_racions)
    racions = aplica(racio, fruites_verdures)
    sr = sum(racions)
    return sr

def fruita_verdura(ar):
    return ar[0] in ('fruita', 'verdura')

def racio(ar):
    return ar[1]

def filtra(condicio, llista):
    r = []
    for elem in llista:
        if condicio(elem):
            r.append(elem)
    return r

def aplica(funcio, llista):
    r = []
    for elem in llista:
        elem_r = funcio(elem)
        r.append(elem_r)
    return r

# aliments_4

def aliments_4(aliments_racions):
    fruites_verdures = filtra_iter(fruita_verdura, aliments_racions)
    racions = aplica_iter(racio, fruites_verdures)
    sr = sum(racions)
    return sr

def filtra_iter(condicio, iterable):
    for elem in iterable:
        if condicio(elem):
            yield elem

def aplica_iter(funcio, iterable):
    for elem in iterable:
        elem_r = funcio(elem)
        yield elem_r

# aliments_5

def aliments_5(aliments_racions):
    fruites_verdures = filter(fruita_verdura, aliments_racions)
    racions = map(racio, fruites_verdures)
    sr = sum(racions)
    return sr

# aliments_6

def aliments_6(aliments_racions):
    fruites_verdures = filter(lambda ar: ar[0] in ('fruita', 'verdura'), aliments_racions)
    racions = map(lambda ar: ar[1], fruites_verdures)
    sr = sum(racions)
    return sr

# aliments_7

import operator

def aliments_7(aliments_racions):
    fruites_verdures = filter(lambda ar: ar[0] in ('fruita', 'verdura'), aliments_racions)
    racions = map(operator.itemgetter(1), fruites_verdures)
    sr = sum(racions)
    return sr

# aliments_lpc

def aliments_lpc(aliments_racions):
    racions = [ar[1] for ar in aliments_racions if ar[0] in ('fruita', 'verdura')]
    sr = sum(racions)
    return sr

# aliments_eg

def aliments_eg(aliments_racions):
    racions = (ar[1] for ar in aliments_racions if ar[0] in ('fruita', 'verdura'))
    sr = sum(racions)
    return sr

