使用

Python 3.4

我有一种方法可行,但我认为可能有更好的方法.

我希望有一个方法expand()的列表,它从列表中选择一个随机元素,但每次选择该元素时,计数器都会递增.我尝试继承str以便能够添加属性,但它不起作用.

我得到的主要问题是表达式random.randint(0,len(self)-1)和使用局部变量似乎不是Pythonic.在我添加计数器之前,我可以输入random.choice(self)

class clauses(list):

def __init__(self):

self.uses = []

def __setitem__(self,key,value):

self.uses[key]=value

super().__setitem__(self,key,value)

def __delitem__(self,key):

del(self.uses[key])

super().__delitem__(key)

def append(self,value):

self.uses.append(0)

super().append(value)

def extend(self,sequence):

for x in sequence:

self.uses.append(0)

super().append(x)

def expand(self):

n = random.randint(0,len(self)-1)

self.uses[n] += 1

return(self[n])

假设列表中没有重复的条目,初始化空字典以及列表应解决此问题.

将元素添加到列表时,您还可以通过myDict [element] = 0将其添加到字典中,其中myDict是已初始化的字典,element是要添加到列表中的项目.

然后,当选择该项时,您可以简单地执行:myDict [element] = 1.

处理重复条目的实例时,您可以创建字典字典,其中字典中的每个键都是一个单词,并且每个单词的嵌套字典键是,例如,重复单词的索引位置(当然的值)是真正的计数).但是,这会增加实质性的复杂性,因为当您从列表中删除项目时,您还需要更新索引位置.这个嵌套的数据结构虽然如此:{word1:{position1:count1},word2:{position1:count1,position 2:count2} ….}

python设置一个初始为0的计数器_如何为python列表的每个元素实现一个计数器?...相关推荐

  1. python设置一个初始为0的计数器_python中统计计数的几种方法

    以下实例展示了 count() 方法的使用方法: 以上实例输出结果如下: 1) 使用字典dict() 循环遍历出一个可迭代对象中的元素,如果字典没有该元素,那么就让该元素作为字典的键,并将该键赋值为1 ...

  2. python中如何统计元组中元素的个数_Python:count直到列表中的元素是一个元组

    我有一个这样的列表: MyList = [2,3,(1,2),5] 其中元素0,1和3是整数,而元素2是元组.我想创建一个计数器,告诉我在元组出现之前列表中有多少元素. 在这个例子中,我想要一个计数器 ...

  3. python写入一个文件之前可以不打开_如何用python实现真正的打开和关闭文件

    file_name:file_name变量是一个包含了你要访问的文件名称的字符串值. access_mode:access_mode决定了打开文件的模式:只读,写入,追加等.所有可取值见如下的完全列表 ...

  4. python一个类继承多个类_如何让Python继承多个类?一文读懂Python类的继承

    面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过Python类的继承并且在此基础上衍生出让Python继承多个类的方法. 通过Python类的继承创建的新类称为子类或派生类, ...

  5. python3.7.0怎么运行_安装运行Python 3.7的步骤

    安装运行Python 3.7的步骤 发布时间:2020-07-03 11:52:34 来源:亿速云 阅读:120 作者:Leah 本篇文章给大家分享的是有关安装运行Python 3.7的步骤,小编觉得 ...

  6. python中遍历结构可以是哪些数据类型_全!Python基础之原生数据类型、判断和循环、函数和文件操作合集...

    长文预警! Python基础系列会将基础内容大致分为三到五个板块,每块着重讲一方面,知识不会很难,主要是以小例子的形式解读,如果你已经入门Python,希望可以帮你温习一下:如果你想入门Python, ...

  7. python默认参数只被解释一次_深入讲解Python函数中参数的使用及默认参数的陷阱...

    C++里函数可以设置缺省参数,Java不可以,只能通过重载的方式来实现,python里也可以设置默认参数,最大的好处就是降低函数难度,函数的定义只有一个,并且python是动态语言,在同一名称空间里不 ...

  8. python安装失败找不到指定路径_解决安装python库时windows error5 报错的问题

    python安装库时,有时候会报错windows error 5,可以尝试关闭所有使用python的编辑器.文件等,然后重新pip安装,如果还是不行,可以将报错最下层文件删除即可(如果不放心可以将该文 ...

  9. python多线程好还是多协程好_深入浅析python中的多进程、多线程、协程

    进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配.任务的调度. ...

最新文章

  1. java 第9章_Java基础第9章.ppt
  2. 怎么向后删除?(删除光标后的字符)(按delete键)
  3. 【论文导读】DLP-KDD2019|BST---使用Transformer进行序列推荐
  4. JavaScript实现hammingDistance汉明距离算法(附完整源码)
  5. jquery的扩展方法介绍
  6. 罗盘时钟编码代码_安全研究 | 利用macOS Dock实现代码的持久化执行
  7. linux 远程挂载摄像头_linux实现HUB分接两个摄像头读取视频
  8. python 不显示图片 直接保存图片 matplotlib 后端执行指令
  9. virtualmin修改php.ini,virtualmin安装和配置使用
  10. 远程控制软件 mRemoteNG,管理多台虚拟机
  11. Amoeba 实现Mysql的读写分离
  12. 常用图像处理相关图像数据库
  13. 上海计算机二级vb题目,上海计算机二级VB试题(卷).doc
  14. pandas Create,Read,Write
  15. 每日一点硬件小知识—PS/2接口
  16. 大学英语四六级往年成绩查询+成绩单补办教程(四级/六级/4级/6级/46级)
  17. 写一个iOS复杂表单的正确姿势
  18. jeecg ajax验证,jeecg权限模块学习
  19. VMware Workstation 15 Pro 安装centos7
  20. 【重识云原生】第六章容器基础6.4.9.6节——Service 与 Pod 的DNS

热门文章

  1. 初始化调用avplayer学习笔记
  2. 我们做出了一个艰难的决定
  3. IBM 启动网格项目 -- “全球社区网格”,招募志愿者
  4. windows下安装phpcms html/ 文件夹不可写的一种错误以及解决方法
  5. 【干货】比赛后期大招之stacking技术分享
  6. java http soap_在Spring中发布SOAP HTTP Webservice - Java杂家 - Blo...
  7. 浅析RTB和RTA(三)
  8. Leetcode每日一题:面试题 08.02. 迷路的机器人
  9. 吴恩达机器学习(十六)机器学习流水线、上限分析
  10. DAC0832_简易函数信号发生器_按键控制波形and步进