<br><br><div class="gmail_quote">On Fri, Oct 23, 2009 at 9:05 AM, John <span dir="ltr">&lt;<a href="mailto:jfabiani@yolo.com">jfabiani@yolo.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I&#39;m using python 2.5<br>
<br>
I have a long list of if, elif, else.  I always thought it was very NOT<br>
pythonic.  It&#39;s easy to read but not pretty.<br>
<br>
for fldType in fieldList:<br>
  if &quot;int&quot; in fldType:<br>
      fld = &quot;I&quot;<br>
  elif &quot;char&quot; in fldType :<br>
      fld = &quot;C&quot;<br>
  elif &quot;bool&quot; in fldType :<br>
     fld = &quot;B&quot; .....<br>
  else:<br>
     fld = &#39;?&#39;<br>
<br>
<br>
I have considered:<br>
<br>
  mydict = {&#39;int&#39;: &#39;I&#39;, &#39;char&#39;:&#39;C&#39;, &#39;bool&#39;:&#39;B&#39;....}<br>
  for fldType in fieldList:<br>
    try:<br>
        fld = mydict[fldType]<br>
    except:<br>
        fld = &#39;?&#39;<br>
<br>
I also considered some sort of  lambda function as<br>
<br>
x = lambda fld: mydict[fldType]<br>
<br>
But could not determine how to account for the key exception. So I tried<br>
<br>
x = lambda fldType: mydict[fldType]<br>
if fldType in mydict:<br>
   x(fldType)<br>
else:<br>
    fld = &#39;?&#39;<br>
<br>
<br>
Any suggestions would be helpful  and would help me learn.<br>
<br>
Johnf<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
Tutor maillist  -  <a href="mailto:Tutor@python.org">Tutor@python.org</a><br>
To unsubscribe or change subscription options:<br>
<a href="http://mail.python.org/mailman/listinfo/tutor" target="_blank">http://mail.python.org/mailman/listinfo/tutor</a><br>
</blockquote></div><br>John,<br><br>Using a Dictionary is the best method to use here and you can use dict.get in order to bypass the KeyError<br><br>EX:<br><br>myDict.get(fldType, None)<br><br>this will output the value from myDict if the key exists, if not it will return None<br>
<br><br>Vince<br>