2015-04-12 1 views
-2

Je suis coincé sur cette question:retour une liste en tranches

Ecrire une fonction lossy_merge(list_1, list_2) qui renvoie une nouvelle liste contenant tous les éléments de list_1, sauf le dernier suivi par tous les éléments de list_2, à l'exception du premier .

Vous pouvez supposer que les deux list_1 et list_2 contiennent au moins un élément.

Par exemple:

Test les éléments suivants:

ans = lossy_merge([10, 20, 30], [100, 200, 300]) 

print(ans) 

devrait me donner: [10, 20, 200, 300]

La fonction que j'ai actuellement:

def lossy_merge(list_1, list_2): 
 
    """returns list""" 
 
    list1 = list_1[0:2] 
 
    list2 = list_2[1:3] 
 
    return list1 + list2

Ça me donne [10,20,200,300] cependant, lors des tests avec d'autres comme:

ans = lossy_merge([10], ['rhubarb']) 

print(ans) 

Je me [10] au lieu de l'attendre []

Qu'est-ce que je fais mal?

Désolé, je suis nouveau à la programmation Python 3:/

Répondre

2

tranche la première liste jusqu'à, mais sans inclure le dernier élément, la deuxième tranche à partir de la deuxième élément jusqu'à la fin de la deuxième liste. Rappelez-vous que le dernier élément est index -1 et le deuxième élément est index 1 car compter en Python commence à zéro.

return list_a[:-1] + list_b[1:]