I believe that what you are looking for is str.split(sep=None, maxsplit=-1)
, even. Given string
, this method will create a list with each of the string
items, which can be accessed by an index. See the code:
# criamos a sua lista, com todas as entradas
lista = ['# cultura de alface (parcial)\n', 'volume:5:0.25:m3\n', 'PH:7.5:0.45:-\n',
'nitrato de calcio:750:51:ppm\n', 'nitrato de potassio:500:45:ppm\n',
'sulfato de magnesio:400:25:ppm\n', 'sulfato de manganes:1.5:0.45:ppm\n',
'fosfato monoamonico:150:40:ppm\n', 'detritos:100:50:ppm\n', '\n']
# e mais duas listas de apoio
nova_lista = []
resultado_consulta = []
for elemento in lista: # para cada elemento nesta lista
provisorio = elemento.strip('\n') # removemos a nova linha -> '\n'
# e separamos as informações usando os dois pontos:
nova_lista.append(provisorio.split(':'))
for dado in nova_lista: # para cada informação nessa nova lista
if "volume" in dado: # procuramos por essa string (volume nesse caso)
for valor in dado: # ao encontrar, percorremos esse registro
resultado_consulta.append(valor) # adicionando em 'resultado_consulta'
break # depois de encontrar 'volume', paramos
print('Mostrando apenas as informações de ' + resultado_consulta[0] + ':')
print(resultado_consulta[1] + ', ' + resultado_consulta[2])
The
resultado consulta
list will have more than one element, which can be accessed through indexes (starting at zero), for example:
resultado_consulta[0] # o item 0 neste caso será 'volume'
resultado_consulta[1] # e o 1, será '5'
resultado_consulta[2] # e o 2, será '0.25'
resultado_consulta[3] # e o 3, será 'm3'
resultado_consulta[4] # e o 4, será: IndexError: list index out of range
Because there is no element 5 in this list!
Result: