python中变量不直接存储值_无法存储函数的Python导致变量?
如果希望它返回更多的结果,则需要计算更多的结果。与其返回它找到的第一个匹配,不如将结果添加到列表中,然后返回列表:contentAslist = [
"abcd",
"efgh",
"abcd",
"ijk",
"lmno",
"ijk",
"lmno",
"ijk",
]
def getallDups():
lc = 0
result = []
for eitem in contentAslist:
lc += 1
if contentAslist.count(eitem) > 1:
result.append((lc, eitem))
return result
data = getallDups()
print data
但是,这是一个非常低效的方法,O(N^2),因为list.count()方法对于列表中的N个项是O(N),我们称之为N次。
更好的方法是使用散列。请注意,这里的返回类型非常不同,但可能更有用,可以很容易地转换为原始表单。import collections
contentAslist = [
"abcd",
"efgh",
"abcd",
"ijk",
"lmno",
"ijk",
"lmno",
"ijk",
]
def getallDups():
lc = 1
# OrderedDict is same as "{}" except that when we iterate them later they're in the order that we added them.
lhash = collections.OrderedDict()
for line in contentAslist:
# get list of line numbers matching this line, or empty list if it's the first
line_numbers = lhash.get(line, [])
# add this line number to the list
line_numbers.append(lc)
# Store the list of line numbers matching this line in the hash
lhash[line] = line_numbers
lc += 1
return lhash
data = getallDups()
for line, line_numbers in data.iteritems():
if len(line_numbers) > 1:
print line, ":",
for ln in line_numbers:
print ln,
上述解为O(N)。
样本输入:abcd
efgh
abcd
ijk
lmno
ijk
lmno
ijk
产出:abcd : 1 3
ijk : 4 6 8
lmno : 5 7
python中变量不直接存储值_无法存储函数的Python导致变量?相关推荐
- python字典修改键所对应值_详解如何修改python中字典的键和值
我们知道python中字典是无序的,它们都是通过hash去对应的.一般的如果我们需要修改字典的值,只需要直接覆盖即可,而修改字典的键,则需要使用字典自带的pop函数,示例如下: t = {} t['a ...
- python全局变量可以改变吗_在Python中避免我的全局变量,我有几个函数可以改变一个变量...
我试图摆脱我的全局变量,但我不是成功的. 在这种情况下,我让用户在运行程序时分配坐标.从这些坐标开始,我们开始驾驶一艘船(在矩阵内),这意味着我控制运动的功能需要从输入功能访问这些坐标.移动功能还需要 ...
- python中的断言是什么意思_一日一技:python中的断言
一.使用python中的断言来自动检测python程序中的错误,让程序更加可靠且更易于调试 从根本上来说,python中的断言语句是一种调试工具,用来测试某个断言条件,如果断言条件为True,则程序将 ...
- [转载] python中numpy模块的around方法_更好地舍入Python的NumPy.around:舍入numpy的数组
参考链接: Python中的numpy.round_ I am looking for a way to round a numpy array in a more intuitive fashion ...
- python中flag=true是什么意思_【后端开发】python中flag什么意思
python中flag一般就是标记.标识的意思 比如:(推荐学习:Python视频教程) #!/usr/bin/python # -*- coding: UTF-8 -*- x = 7 i = 1 f ...
- 在python中使用最小二乘法画出拟合曲线_基于jupyter notebook的python编程-----运用最小二乘法,导入文件数据模拟一元线性回归分析...
基于jupyter notebook的python编程-----运用最小二乘法,导入文件数据模拟一元线性回归分析 用最小二乘法模拟一元线性回去曲线的目录 一.运行jupyter notebook,搭建 ...
- python中的数据分析库有哪些_五大常用数据科学Python库
目录介绍PandasNLTKTextBlobpyLDAvisNetworkX摘要参考引用 介绍 处理数据的过程消耗了人们在日常工作中的大量时间,而且我也经历过.我不仅处理过数值数据,还处理过文本数据, ...
- python中的标准模块有哪些_下面哪些模块属于Python标准库模块
下面哪些模块属于Python标准库模块 答:math\n\nrandom\n\ndecimal\n\ntime 艺术学理论学科方向可分为两个层次:一是纯理论性学科方向:二是应用性(或交叉性)学科方向. ...
- python中可选参数是什么意思_【IT专家】python 函数参数(必选参数、默认参数、可选参数、关键字参数)...
本文由我司收集整编,推荐下载,如有疑问,请与我司联系 python 函数参数 ( 必选参数.默认参数.可选参数.关键字参数 ) 2015/09/01 30797 参考: liaoxuefeng/wik ...
最新文章
- lamp不解析php,LAMP环境下不能解析php原因及排查步骤
- iOS: 零误差或极小误差的定时执行或延迟执行?
- css3多行超出隐藏并打点点
- 训练生成对抗网络的过程中,训练gan的地方为什么这里没有detach,怎么保证训练生成器的时候不会改变判别器
- 【蓝桥杯-第五届】 啤酒和饮料
- Linux 之十二 Makefile 从入门到放弃全解
- qq浏览器私密空间在哪 具体操作步骤
- Unity-多核优化1-C#JobSystem
- 互联网架构:屡试不爽的架构三马车
- qq2013 sp1 去广告方法及代码
- 标准输入输出详解(C++)
- 自己动手编译android ffmpeg
- java 连接ftp服务器 从页面进行下载
- Laravel项目+Google验证器
- 软工1816 · 第二次作业 - 个人项目
- js的validate插件异步效验
- 全球与中国钠还原剂市场深度研究分析报告
- R语言单因素方差分析(附代码)
- matlab-采用For循环,将每次计算得到的矩阵,依次放进一个新的矩阵
- 简单粗暴搞定webpack4的style-loader!css-loader