这似乎是一种非常常见的模式:
for row in reader: c1=row[0] if ids.has_key(c1): id1=ids.get(c1) else: currid+=1 id1=currid ids[c1]=currid
我想知道是否有更好的方法来实现这一目标.至于单行if语句,我可以这么做:
id1=ids.get(c1) if ids.has_key(c1) else currid+1
但是,如果if情况被执行,我就会坚持使用currid和sticking,如果if条件通过,则将c-> id1粘贴到字典中.
解决方法
如果id从0开始:
for row in reader: id1 = ids.setdefault(row[0],len(ids))
(旁白:has_key被认为已弃用.在d中使用x而不是d.has_key(x).)