Eu preciso entrar em uma lista de itens. Muitos dos itens da lista são valores inteiros retornados de uma função; ou seja,
myList.append(munfunc())
Como devo converter o resultado retornado em uma string para associá-lo à lista?
Preciso fazer o seguinte para cada valor inteiro:
myList.append(str(myfunc()))
Existe uma maneira mais pitônica de resolver problemas de fundição?
Respostas:
Chamar
str(...)
é a maneira pitônica de converter algo em uma string.Você pode considerar por que deseja uma lista de cadeias. Em vez disso, você pode mantê-lo como uma lista de números inteiros e apenas convertê-los em seqüências de caracteres quando precisar exibi-los. Por exemplo, se você tiver uma lista de números inteiros, poderá convertê-los um por um em um loop for e juntá-los a
,
:fonte
Não há nada errado em passar números inteiros para str. Uma razão para você não fazer isso é que myList é realmente uma lista de números inteiros, por exemplo, seria razoável somar os valores na lista. Nesse caso, não passe suas entradas para str antes de anexá-las à myList. Se você não converter em cadeias antes de anexá-las, poderá construir uma cadeia grande fazendo algo como
fonte
str
? Por favor, considere a possibilidade de que você precisa adicionar alguma lógica fuzzy para o seu analisador ;-)função de mapa em python pode ser usada. São necessários dois argumentos. O primeiro argumento é a função que deve ser usada para cada elemento da lista. O segundo argumento é o iterável .
Depois de converter a lista em string, você pode usar função de junção para combinar a lista em uma única string
fonte
O método acima é a maneira mais fácil e geral de converter lista em string. outro método curto é
fonte
Existem três maneiras de fazer isso.
digamos que você tenha uma lista de ints
"-".join(str(n) for n in my_list)
"-".join([str(n) for n in my_list])
"-".join(map(str, my_list))
No entanto, conforme declarado no exemplo de timeit no site python em https://docs.python.org/2/library/timeit.html, o uso de um mapa é mais rápido. Então, eu recomendo que você use
"-".join(map(str, my_list))
fonte
Seu problema é bastante claro. Talvez você esteja procurando estender, para adicionar todos os elementos de outra lista a uma lista existente:
Se você deseja converter números inteiros em strings, use str () ou interpolação de strings, possivelmente combinada com uma compreensão de lista, ou seja,
Tudo isso é considerado pitônico (ok, uma expressão geradora é ainda mais pitônica, mas vamos manter a simplicidade e o tópico)
fonte
Por exemplo:
Quanto a mim, quero adicionar um
str
antes de cada lista de str:Ou lista única:
fonte
Talvez você não precise de números como strings, basta:
Posteriormente, se você precisar como string, poderá fazê-lo com string ou com formato string:
print "Vastaus5 = %s" % functaulu[5]
fonte
Como é que ninguém parece gostar
repr
?python 3.7.2:
Tome cuidado, porém, é uma representação explícita. Um exemplo mostra:
mais informações em pydocs-repr
fonte