|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在视频中练习任务:编写不可改变的自定义列表,记录列表中每个元素被访问的次数:
给定代码没有问题- class Countlist:
- def __init__(self,*args):#参数是可变数量时,这里要用*args
- self.values = [x for x in args]
- self.count = {}.fromkeys(range(len(self.values)),0)
- def __len__(self):
- return len(self.value)
- def __getitem__(self,key):
- self.count[key] += 1
- return self.values[key]
复制代码
我的问题是我将__init__中语句改成平常的字典,列表语句,结果却不对,我的代码如下,希望大家帮我找找原因
- class Countlist:
- def __init__(self,*args):#参数是可变数量时,这里要用*args
- self.values = []
- for i in args:
- self.values.append(i)
- self.count = {}
- self.count.fromkeys(self.values,0)#这里是在创建字典,并初始化为0
- def __len__(self):
- return len(self.value)
- def __getitem__(self,key):
- self.count[key] += 1
- return self.values[key]
复制代码
本帖最后由 wei_Y 于 2017-8-6 11:33 编辑
- | fromkeys(iterable, value=None, /) from builtins.type
- | Returns a new dict with keys from iterable and values equal to value.
复制代码
看一下formkeys的介绍。返回一个键由可迭代对象(iterable)的元素,并且每个键的值为value的 新字典。
- self.count = {}
- self.count = self.count.fromkeys(range(len(self.values)),0)
复制代码
|
-
|