小编Jim*_*ard的帖子

获取数组中最不常见的元素

为了找到最常见的,我知道我可以使用这样的东西:

most_common = collections.Counter(array).most_common(to_find)
Run Code Online (Sandbox Code Playgroud)

然而,我似乎无法找到任何可比的,因为找到最不常见的元素.

我可以获得有关如何做的建议.

python python-3.x

25
推荐指数
6
解决办法
1万
查看次数

Python脚本中的函数顺序是否重要?

假设我的脚本中有两个函数:sum_numbersprint_sum.他们的实现是这样的:

def sum_numbers(a, b):
    return a + b

def print_sum(a, b):
    print(sum_numbers(a, b))
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:函数的编写顺序是否重要?如果我print_sum先编写了函数然后编写sum_numbers了代码,代码是否仍然可以工作?如果答案是肯定的,它总是有效吗?

python

25
推荐指数
2
解决办法
1万
查看次数

从Python中廉价的列表前面删除一个元素?

我正在编写一个程序,它在数据列表的前面或后面做了很多删除,而不是中间的.

我明白删除最后一个元素很便宜,但删除第一个元素怎么样?例如,假设列表A的地址为4000,所以元素0是at 4000,元素1是at 4001.

那么在删除元素0则只是让编译器把名单A在的地址4001,或将它的换挡元件14001该位置处4000,并转移所有其他元素下来1

python optimization list python-3.x

24
推荐指数
2
解决办法
3670
查看次数

从包中导入所有函数:"from.*import*"

目标

我希望能够__init__.py从我的包中的每个文件导入(在)所有函数.

用法

例如在此文件夹结构中.

manage.py
- scripts/
   -- __init__.py
   -- tests.py
   -- deploy.py
Run Code Online (Sandbox Code Playgroud)

我目前正在做以下事情:

manage.py:

from scripts import *
Run Code Online (Sandbox Code Playgroud)

script/init .py:

from .tests import *
from .deploy import *
Run Code Online (Sandbox Code Playgroud)

但是,每次我在包中添加另一个文件时,我都要添加一个导入行script/__init__.py,这有点烦人.

python python-import

23
推荐指数
2
解决办法
5万
查看次数

为什么deque实现为链表而不是循环数组?

CPython的deque实现为64项的双向链表大小的"块"(阵列).除了链表两端的那些块外,这些块都是满的.在IIUC中,当pop/ popleft删除块中的最后一项时,块被释放; 当append/ appendleft尝试添加新项目并且相关块已满时,将分配它们.

我理解使用链接列表而不是链接项列表所列出的优点:

  • 减少每个项目中prev和next的指针的内存成本
  • 减少为malloc/ free添加/删除的每个项目执行/的运行时成本
  • 通过将连续指针放在彼此旁边来改善缓存局部性

但是为什么不是首先使用单个动态大小的圆形数组而不是双链表呢?

AFAICT,圆形阵列将保留所有上述优点,并维持(atortized)成本pop*/ append*at O(1)(通过分配,就像在中list).此外,它还可以提高从当前O(n)到索引的索引查找成本O(1).循环数组也可以更简单地实现,因为它可以重用大部分list实现.

我可以在C++这样的语言中看到支持链表的论证,其中可以O(1)使用指针或迭代器从中间删除项目; 但是,python deque没有API来执行此操作.

python cpython python-3.x python-internals

23
推荐指数
2
解决办法
1159
查看次数

按列表中元素的出现次数对列表进行排序

我想按列表中元素的出现次数对列表进行排序.
当我使用这个表格时:

A=[2,1,3,4,2,2,3]
A.sort(key=lambda x:A.count(x))  
print(A)
Run Code Online (Sandbox Code Playgroud)

结果不是我想要的:[2, 1, 3, 4, 2, 2, 3].
但是,当我使用sorted以下方式编写时:

B=sorted(A,key=lambda x:A.count(x))
print(B)
Run Code Online (Sandbox Code Playgroud)

结果是对的:[1, 4, 3, 3, 2, 2, 2].
这种行为的原因是什么?

python sorting list

22
推荐指数
2
解决办法
3253
查看次数

更衣室算法

注意:只是为了抬头,这不是我学校的任务,因为我自己甚至不知道哪所学校写了这个问题.希望没有误会.

我发现这个关于更衣室的有趣问题:

Rec的更衣室有N个储物柜,标有1,2,.... ..,N.

每个储物柜都已锁定,但可以使用其唯一的钥匙打开.

每个储物柜钥匙的副本都在其相邻的储物柜内; 即,储物柜钥匙的副本i被放置在储物柜i + 1和i-1中(储物柜1的钥匙仅在储物柜2中,储物柜N的钥匙仅在储物柜N-1中).

T网球在T个不同的储物柜内(你知道他们在哪个储物柜里).您将获得M个储物柜的钥匙,您的目标是通过打开最少数量的储物柜来收集所有网球.

对于图片,您可以在此处直接看到该文件.

我必须向一些新生提出这个问题,但我想先确定我自己已经预先得到了正确的答案.

我在想的是:

  1. 需要逐一检查球.因此,对于每个球(忽略其他球),每个球必须通过遍历指定的球来访问.对于每个键,计算访问球所需的步骤.最小的结果存储在称为"总步数"的变量中.

  2. 对下一个球做这个确切的事情,当我得到当前球的最小步数.我将此值添加到"总步骤".

  3. 如果钥匙上方有一个球,则应用特殊条件,然后键开始从i + 1和i-1移动.

我的问题是:我是对的吗?我不想将错误的算法分享给其他人,因为它不专业.期待任何意见,建议和意见.

algorithm

21
推荐指数
1
解决办法
2085
查看次数

在现有的python系统上安装anaconda?

我找到了一台运行Python的旧windows xp机器2.5.2.我想改用Anaconda.我可以在其上安装Anaconda吗?我是否必须卸载Python 2.5.2?同样地,我有一个Mac系统,Python 2.7.9使用一些NLT库,我也想让Anaconda运行它.将Anaconda放在已有python的现有系统上的最佳方法是什么?

python installation anaconda conda

21
推荐指数
2
解决办法
3万
查看次数

将List <int>转换为逗号分隔值的字符串

有一个List<int>整数(例如:) 1 - 3 - 4我怎么能用这种类型的字符串转换它?

例如,输出应为:

string values = "1,3,4";
Run Code Online (Sandbox Code Playgroud)

c# list

20
推荐指数
3
解决办法
5万
查看次数

向Python函数添加属性的最佳方法

以Python函数的简单情况为例,该函数计算数学函数:

def func(x, a, b, c):
    """Return the value of the quadratic function, ax^2 + bx + c."""

    return a*x**2 + b*x + c
Run Code Online (Sandbox Code Playgroud)

假设我想以函数属性的形式"附加"一些其他信息.例如,LaTeX表示.我知道,由于PEP232,我可以在函数定义之外执行此操作:

def func(x, a, b, c):
    return a*x**2 + b*x + c
func.latex = r'$ax^2 + bx + c$'
Run Code Online (Sandbox Code Playgroud)

但我想在函数定义中做到这一点.如果我写

def func(x, a, b, c):
    func.latex = r'$ax^2 + bx + c$'
    return a*x**2 + b*x + c
Run Code Online (Sandbox Code Playgroud)

这当然有效,但只有在func第一次调用之后(因为Python在执行函数时是"懒惰的"(?))

我是编写可调用类的唯一选择吗?

class MyFunction:
     def __init__(self, func, latex):
         self.func = …
Run Code Online (Sandbox Code Playgroud)

python function introspection python-3.x

20
推荐指数
2
解决办法
3326
查看次数