Forum >> Principianti >> Aiuto split

Pagina: 1

Messaggio annotato da Daniele aka Palmux :
Questa discussione è stata spostata dalla categoria Blog.
Ciao,
sono un'autodidatta che sta cominciando ora ad usare Python 2.7.8.

Ho un problema con la funzione split.

Io ho una variabile a = ['rosa celeste verde'] e ho inserito il comando b = a.split(" ") tuttavia il programma mi segnala questo errore:

AttributeError: 'list' object has no attribute 'split'




Potreste dirmi come risolvere per favore??




Grazie mille :)
Ciao Stefania, nell'errore c'è già contenuta la risposta.

Creando un oggetto a = ['rosa celeste verde'] non hai creato una stringa che ha l'attributo split(), ma una lista che invece non ha split(). Infatti le parentesi [ e ] identificano proprio questo tipo di oggetti.

Quello che avresti dovuto fare era:
a = "rosa celeste verde"
b = a.split(" ")
print b
['rosa', 'celeste', 'verde']

Per conoscere il tipo di oggetto che stai usando usa type(), che nel tuo caso ti avrebbe restituito:
a = ['rosa celeste verde']
print type(a)
<type 'list'>

e non:

a = "rosa celeste verde"
print type(a)
<type 'str'>

Ciao
Daniele
E come faccio ad avere una stringa considerando che la lista 'a' è una variabile ottenuta leggendo un file txt contente quelle parole?



Grazie mille
E come faccio ad avere una stringa considerando che la lista 'a' è una variabile ottenuta leggendo un file txt contente quelle parole?

Fai una cosa Stefania, dimmi come ottieni a e quale tipo di oggetto vuoi ottenere (lista, stringa, tupla, etc..), così è più facile per me aiutarti. Non capisco bene dove sia il problema, anche perché puoi indicare a Python che deve considerare a come una stringa semplicemente con:

 str(a)
Fammi sapere.
Daniele


Allora io ho un file di testo (prova) contenente le parole 'rosa celeste verde', voglio scrivere un programma che legga il file di testo e stampi il secondo colore.
Io ho fatto così:





f = open("prova.txt", "r")

a = f.readlines()

b = a.split(" ")




print b2





che mi restituisce errore sul comando b=a.split(" ").

Dove sbaglio?
Ti mostro una strada, non LA strada. Con un po' di pratica ti accorgerai che ne esistono diverse ed anche molto più eleganti.

f = open("prova.txt", "r")
a = f.readlines()

b = a.split(" ")

Sostituisci con:
b = a[ 0 ].split(" ")

print b[ 2 ]


Considerando che devi sempre iniziare da 0, per avere il secondo valore della lista devi digitare:

print b[ 1 ]

Ciao.
Daniele

Io nel frattempo avevo fatto così:




f = open("prova.txt", "r")

a = f.readlines()

b = str(a).split(" ")

print b1





pensi possa andare bene comunque?
pensi possa andare bene comunque?
Sì, va benissimo. :ok:

In bocca al lupo con lo studio del nostro amico :py: e non esitare a chiedere aiuto in futuro.

Ciao.
Daniele
Grazie mille, sei stato gentilissimo :) :)


--- Ultima modifica di Daniele aka Palmux in data 2014-08-24 10:44:55 ---


Pagina: 1



Esegui il login per scrivere una risposta.