Pythonic从字典中增加和分配id的方法

这似乎是一种非常常见的模式:

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).)

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。