strings Junte-se a uma lista de itens com diferentes tipos como string em Python




python retirar parte de uma string (7)

Seu problema é bastante claro. Talvez você esteja procurando estender, para adicionar todos os elementos de outra lista a uma lista existente:

>>> x = [1,2]
>>> x.extend([3,4,5])
>>> x
[1, 2, 3, 4, 5]

Se você quiser converter inteiros em strings, use str () ou interpolação de string, possivelmente combinada com uma compreensão de lista, ou seja,

>>> x = ['1', '2']
>>> x.extend([str(i) for i in range(3, 6)])
>>> x
['1', '2', '3', '4', '5']

Tudo isso é considerado pythonic (ok, uma expressão geradora é ainda mais pythonic mas vamos ficar simples e no tópico)

Eu preciso entrar em uma lista de itens. Muitos dos itens na lista são valores inteiros retornados de uma função. ie:

myList.append(munfunc()) 

Como devo converter o resultado retornado em uma string para uni-lo à lista?

Preciso fazer o seguinte para cada valor inteiro:

myList.append(str(myfunc()) 

Existe uma maneira mais Python para resolver problemas de fundição?


Chamar str(...) é a maneira Python de converter algo em uma string.

Você pode querer considerar por que você quer uma lista de seqüências de caracteres. Você poderia mantê-lo como uma lista de números inteiros e converter apenas os inteiros em strings quando precisar exibi-los. Por exemplo, se você tem uma lista de números inteiros, então você pode fazer isso:

print ', '.join(str(x) for x in list_of_ints)

a=[1,2,3]
b=[str(x) for x in a]
print b

acima método é a maneira mais fácil e mais geral para converter a lista em string. outro método curto é-

a=[1,2,3]
b=map(str,a)
print b

Existem três maneiras de fazer isso.

digamos que você tenha uma lista de ints

my_list = [100,200,300]
  1. "-".join(str(n) for n in my_list)
  2. "-".join([str(n) for n in my_list])
  3. "-".join(map(str, my_list))

No entanto, conforme indicado no exemplo de timeit no site da Python em https://docs.python.org/2/library/timeit.html usar um mapa é mais rápido. Então eu recomendo que você use "-".join(map(str, my_list))


função de mapa em python pode ser usada. Leva dois argumentos. Primeiro argumento é a função que deve ser usada para cada elemento da lista. O segundo argumento é o iterável .

a = [1, 2, 3]   
map(str, a)  
['1', '2', '3']

Depois de converter a lista em string, você pode usar a função simple join para combinar a lista em uma única string

a = map(str, a)    
''.join(a)      
'123'

Talvez você não precise de números como strings, apenas faça:

functaulu = [munfunc(arg) for arg in range(loppu)]

Mais tarde, se você precisar dele como string, você pode fazê-lo com string ou com string de formato:

print "Vastaus5 = %s" % functaulu[5]


Eu não tenho certeza do que você quer dizer com "join", porque a gramática que você usa em sua pergunta é muito ruim, mas se eu entendi sua pergunta corretamente, não há nada errado em passar inteiros para str. Uma razão pela qual você pode não fazer isso é que myList é realmente uma lista de inteiros, por exemplo, seria razoável somar os valores na lista. Nesse caso, não passe seus ints para str antes de anexá-los a myList. Se você não converter em strings antes de acrescentar, você pode construir uma string grande fazendo algo como

', '.join(map(str, myList))




list