2016-02-13 21 views
6

Szukałem google i tej strony, aby uzyskać odpowiedź na to bezskutecznie, z kilkoma różnymi wyszukiwanymi terminami. Więc jeśli pytanie już zostało odebrane, chciałbym, aby na to wskazywało.Dołącz do ostatniego elementu na liście


Próbuję dołączyć szereg elementów listy, tym ostatni element listy. Tu jest mój kodu testu:

inp = ['1','2','3','4'] 
test = '_'.join(inp[0:2]) 
test2 = '_'.join(inp[2:-1]) 

print(test + ' & ' + test2) 

Znam zakres nie będzie zawierała ostatni element na liście, więc to właśnie daje mi 3 dla test2, ale jeśli mogę użyć zamiast 0 -1 próbując dostać aby zawrzeć ostatni element przez zapętlenie, zamiast tego nic nie zwraca.


Jestem bardzo nowe do kodowania nadal, więc nie dziwi mnie, jeśli istnieje łatwiejszy sposób to zrobić w ogóle. Byłbym szczęśliwy wiedząc, czy jest to możliwe do rozwiązania, ale równie szczęśliwe dla innego rozwiązania. Zasadniczo wyciągam dwa pierwsze elementy z listy, aby sprawdzić je pod nazwą obiektu, a pozostała część listy - bez określonej liczby elementów - jest drugą zmienną.

Zakładam, że mogę zrobić coś takiego, jak pop pierwsze dwa elementy z listy i na własne, a następnie dołączyć do tej listy i obcięty oryginalny bez korzystania z zakresów. Ale jeśli kontrola nie powiedzie się, muszę ponownie użyć oryginalnej listy, więc również powinienem sporządzić kopię tej listy. Jeśli to w ogóle możliwe, byłoby miło zrobić mniej kodu, niż to by zajęło?

+2

Proszę dodać pożądany wynik. – timgeb

+0

Powinien wydrukować "1_2 i 3_4", ale ktoś i tak już to rozwiązał. – aryst0krat

Odpowiedz

4

Aby uzyskać listę w tym ostatnim elemencie, pozostawić do końca się:

inp = ['1','2','3','4'] 
test = '_'.join(inp[:2]) 
test2 = '_'.join(inp[2:]) 

print(test + ' & ' + test2) 
+0

Dokładnie tego potrzebowałem. I takie proste też! Po prostu pokażę ci, o czym zapomniałem, odkąd poznałem podstawy. – aryst0krat

2

Można użyć zagnieżdżone dołączyć:

>>> ' & '.join(['_'.join(inp[i:j]) for i, j in zip([0, 2], [2, None])]) 
'1_2 & 3_4' 

lub prostsze rozwiązanie:

>>> ' & '.join(["_".join(inp[:2]), "_".join(inp[2:])]) 
'1_2 & 3_4' 
+0

Doceniam to rozwiązanie, ponieważ zrozumienie list jest czymś, czego muszę się nauczyć (nie sądzę, że istniały w wersji 2.7, ponieważ mój nauczyciel nigdy tego nie dotknął), ale na razie inne rozwiązanie jest łatwiejsze w moim mózgu i wydaje się prostsze w wprowadzić w życie. Ale dziękuję! – aryst0krat

Powiązane problemy