Pytanie Jak usunąć nawiasy kwadratowe z listy w Pythonie? [duplikować]


To pytanie już zawiera odpowiedź:

LIST = ['Python','problem','whatever']
print(LIST)

Kiedy uruchamiam ten program, otrzymuję

[Python, problem, whatever]

Czy można usunąć te nawiasy kwadratowe z wyjścia?


28
2017-11-03 09:09


pochodzenie


sugeruję map zamiast str(i) for i in LIST - map to kod C, więc jest szybszy - yedpodtrzitko
rozumienie list jest w rzeczywistości szybsze niż mapa w Python2, ponieważ nie tworzy ramki stosu, która jest kosztowna pod względem obliczeniowym. mapa go tworzy. Ale takie zachowanie jest problematyczne, ponieważ zmienna w zrozumieniu listy może przeciekać z powodu ponownego wiązania, jeśli wcześniej zadeklarowano zmienną o tej samej nazwie. Zrozumienie listy w Pythonie 3 nie wykazuje takiego problemu, ponieważ zostało zmienione tak, aby utworzyć ramkę stosu, aby była zgodna z wyrażeniami generatora. - Kenji Noguchi


Odpowiedzi:


Można go przekonwertować na ciąg zamiast bezpośredniego drukowania listy:

print(", ".join(LIST))

Jeśli elementy na liście nie są łańcuchami, możesz przekonwertować je na łańcuch za pomocą dowolnego z nich repr (jeśli chcesz cytować wokół ciągów) lub str (jeśli nie), jak na przykład:

LIST = [1, "foo", 3.5, { "hello": "bye" }]
print( ", ".join( repr(e) for e in LIST ) )

Który daje wynik:

1, 'foo', 3.5, {'hello': 'bye'}

57
2017-11-03 09:11



Dziękuję, ale co, jeśli mam numery w mojej LISTE? - Gregor Gajič
@ GregorGajič następnie "," .join (str (i) dla i w LIST) - bereal
@ GregorGajič: Odpowiedź zaktualizowana. - Sebastian Paaske Tørholm
Jak mogę usunąć pierwszy nawias, jeśli tak, [['String-1','String-2','String-3']] a wynik będzie taki ['String-1','String-2','String-3'] - Nedy Suprianto


Tak, jest na to kilka sposobów. Na przykład możesz przekonwertować listę na ciąg, a następnie usunąć pierwszy i ostatni znak:

l = ['a', 2, 'c']
print str(l)[1:-1]
'a', 2, 'c'

Jeśli twoja lista zawiera tylko ciągi i chcesz usunąć również cytaty, możesz użyć join metoda, jak już powiedziano.


19
2017-11-03 09:13





jeśli masz numery na liście, możesz użyć map aplikować str do każdego elementu:

print ', '.join(map(str, LIST))

^ map jest kod C, więc jest szybszy niż str(i) for i in LIST


11
2017-11-03 09:24





def listToStringWithoutBrackets(list1):
    return str(list1).replace('[','').replace(']','')

5
2018-02-07 11:35