草庐IT

sort_list

全部标签

python - 替代 python 的 .sort() (用于插入大列表并保持排序)

我需要不断地向预先排序的列表中添加数字:fornuminnumberList:list.append(num)list.sort()每次迭代都很短,但是当给定的numberList包含数万个值时,此方法会变慢。是否有更有效的函数可以使列表保持原样并找出插入新数字的索引以保持数字的正确顺序?我自己尝试编写的任何东西都比.sort()花费的时间更长 最佳答案 您可以使用bisect.insort()function将值插入到已排序的列表中:frombisectimportinsortinsort(list,num)请注意,这仍然需要一些

Python 效率 : lists vs. 元组

我有中等数量的基础对象。这些基础对象将被放入集合中,这些集合将被处理:排序、截断等。不幸的是,n足够大,内存消耗有点令人担忧,速度也越来越令人担忧。我的理解是元组的内存效率稍微高一些,因为它们是重复数据删除的。无论如何,我想知道Python2.6/2.7中列表与元组的cpu/内存权衡是什么。 最佳答案 如果您有一个元组和一个包含相同元素的列表,则元组占用的空间更少。由于元组是不可变的,因此您无法对它们进行排序、添加,等等。我建议观看thistalkbyAlexGaynor快速介绍何时选择Python中的数据结构。更新:再考虑一下,您

python - 为什么 '.sort()' 在 Python 中导致列表为 'None'?

这个问题在这里已经有了答案:Whydotheselistoperations(methods:clear/extend/reverse/append/sort/remove)returnNone,ratherthantheresultinglist?(5个答案)关闭去年。我正在尝试对int的Python列表进行排序,然后使用.pop()函数返回最高的一个。我尝试过以不同的方式编写方法:defLongestPath(T):paths=[Ancestors(T,x)forxinOrdLeaves(T)]#^Creatingalistsoflistsofints,thispartworksr

python - 理解这一行 : list_of_tuples = [(x, y) for x, y, label in data_one]

如您所知,我是一名初学者,正在尝试了解编写此函数的“Pythonic方式”是基于什么构建的。我知道其他线程可能包含对此的部分答案,但我不知道要寻找什么,因为我不明白这里发生了什么。这一行是我friend发给我的代码,用来改进我的代码:importnumpyasnp#load_data:defload_data():data_one=np.load('/Users/usr/...file_name.npy')list_of_tuples=[]forx,y,labelindata_one:list_of_tuples.append((x,y))returnlist_of_tuplespri

python - 覆盖继承的默认支持对象(如 dict、list)的嵌套 JSON 编码

我已经设置了一些我自己的类,它们是字典的子类,以像它们一样工作。然而,当我想将它们编码为JSON(使用Python)时,我希望它们以一种我可以将它们解码回原始对象而不是字典的方式进行序列化。所以我想支持我自己的类(继承自dict)的嵌套对象。我曾尝试过类似的东西:classShadingInfoEncoder(json.JSONEncoder):defencode(self,o):iftype(o).__name__=="NodeInfo":return'{"_NodeInfo":'+super(ShadingInfoEncoder,self).encode(o)+'}'eliftyp

python - 分页如何在 Google Cloud Storage Python 客户端库中的 list_blobs 函数中工作

我想使用ClientLibraryforPython获取GoogleCloudStorage存储桶中所有blob的列表.根据documentation我应该使用list_blobs()函数。该函数似乎使用两个参数max_results和page_token来实现分页。我不确定如何使用它们。特别是,我从哪里获得page_token?我原以为list_blobs()会提供一个page_token供后续调用使用,但我找不到任何关于它的文档。此外,max_results是可选的。如果我不提供会怎样?有默认限制吗?如果有,那是什么? 最佳答案

python - Argparse 子解析器 : hide metavar in command listing

我在我的程序中使用Pythonargparse模块作为命令行子命令。我的代码基本上是这样的:importargparseparser=argparse.ArgumentParser()subparsers=parser.add_subparsers(title="subcommands",metavar="")subparser=subparsers.add_parser("this",help="dothis")subparser=subparsers.add_parser("that",help="dothat")parser.parse_args()运行“pythontest.p

python - 在 Python 中,f.readlines() 和 list(f) 有什么区别

来自Python2Tutorial和Python3Tutorial,section7.2.1的中点有一行说:Ifyouwanttoreadallthelinesofafileinalistyoucanalsouselist(f)orf.readlines().所以我的问题是:这两种将文件对象转为列表的方式有什么区别?我很好奇性能方面和底层Python对象实现(可能还有Python2和Python3之间的区别)。 最佳答案 在功能上,没有区别;两种方法都会产生完全相同的列表。在实现方面,将文件对象用作iterator(重复调用next

python - 用 C : Pass a list to PyArg_ParseTuple 扩展 python

我一直在努力掌握使用C扩展python,到目前为止,基于documentation,我在编写小型C函数并使用Python扩展它方面取得了相当大的成功。但是,我现在遇到了一个相当简单的问题-我无法找到解决方案。所以,我想做的是将一个doublelist传递给我的C函数。例如,要传递int,我会执行以下操作:intsquared(intn){if(n>0)returnn*n;elsereturn0;}staticPyObject*squaredfunc(PyObject*self,PyObject*args){intn;if(!PyArg_ParseTuple(args,"i",&n))r

python - django 管理更改列表中的自定义 list_editable 字段,它不直接对应于模型字段

假设我的模型是这样的(这是一个简化的例子):classPerson(Model):first_name=CharField(...)last_name=CharField(...)defname():returnfirst_name+''+last_name在管理更改列表中将名称显示为单列非常简单。但是,我需要一个可从列表页面编辑的单个可编辑“名称”字段,然后我可以对其进行解析以提取和设置模型字段值。解析不是问题。我只是想知道如何在列表页面上有一个不直接对应于模型字段的可编辑表单字段。 最佳答案 您应该能够通过一些工作在纯Pytho