using split for a string : error

Tobias M. tm at tobix.eu
Thu Jan 24 05:55:17 EST 2013


Hi,

do a "print sp" after the split and you might see that the strings don't 
look as you expected. There might be leading or trailing whitespaces in 
the splitted strings and in sp[10] there probably is a line break "\n" 
at the end.
To remove those unwanted characters you could use the strip() function.

So your code could be:

if sp[9].strip() == sp[10].strip():
     print "Same class"
else:
     print "Different class"

At least this works for me when I tried it...

Am 24.01.2013 11:37, schrieb inshu chauhan:
> Here I have a code which basically reads a csv file, tries to compare 
> the last 2 items in each line of the file.
>
> f = open(r"Z:\modules\Feature_Vectors_300_Pclass.arff")
> for l in f:
>     sp = l.split(",")
>     if len(sp) != 11:
>         print >> of, l,
>
>     else:
>         #print sp[9], sp[10]
>         if sp[9] == sp[10]:
>             print " Same class"
>         else :
>             print "Different class"
>
> f.close()
>
> For me I think the programme is logically correct, but its giving me 
> results which are strange.
> It is  Printing " Different Class"  even when sp[9] is equal to sp[10] 
> and "Same class" when sp[9] is not equal to sp[10]. and sp[9] and 
> sp[10] are simple integers like 3, 3, 4 ,4.
>
> I have a little understanding why the programme is behaving like this ?
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130124/06d95e07/attachment.html>


More information about the Python-list mailing list