首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中使用defaultdict时出错。我是python新手,我得到了AttributeError:'str‘对象没有'append’属性

在python中使用defaultdict时出错。我是python新手,我得到了AttributeError:'str‘对象没有'append’属性
EN

Stack Overflow用户
提问于 2018-07-16 00:33:56
回答 1查看 54关注 0票数 -2
代码语言:javascript
复制
#!/usr/bin/py

from collections import defaultdict
"i am getting str object has no attribute appened"
class car:

    def __init__(self,car_name):

    self.car_name = car_name


class model(car):

    def __init__(self,car_model,car_name):

    self.car_model=car_model

    car.__init__(self,car_name)

cars1=defaultdict(list)

if __name__ == "__main__":

    i=1

    while(i<=2):

        car_name=raw_input("Enter the car name: ")

        car_model=raw_input("Enter the car model: ")

        brand=model(car_model,car_name)

        if brand.car_name in cars1:

            print "1"

            print brand.car_name

#### here i am getting this error ######

            cars1[brand.car_name].append(brand.car_model)

        else:

            print "2"

            cars1[brand.car_name]=brand.car_model

            i+=1

    for key,values in cars1.items():

        print key+":"+values

        print cars1.items()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-16 00:45:01

您会得到这个错误,因为如果键不存在,您将插入一个字符串作为值(cars1[brand.car_name] = brand.car_model)。

由于您使用的是defaultdict,因此甚至不需要执行此检查,只需调用append即可。如果键不存在,将创建一个空列表,这就是使用defaultdict的意义所在。

代码语言:javascript
复制
brand = model(car_model, car_name)

cars1[brand.car_name].append(brand.car_model)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51350181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档