看看构造我的函数的两种方法:
class myClass:
def _myFunc(self):
pass
def myFunc2(self):
self._myFunc()
class myClass:
def myFunc2(self):
def myFunc():
pass
myFunc()
Run Code Online (Sandbox Code Playgroud)
第二种选择会慢吗?我只需要从myFunc2调用myFunc,所以我想将它隐藏在我的模块文档中,我可以使用下划线,但我认为将它放在函数中会更清晰.另一方面,我可能需要每秒调用myFunc2几百次,因此每次调用myFunc2时"重新定义"myFunc可能会很慢......这是一个很好的猜测吗?
如何合并列表列表?
[['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I']]
Run Code Online (Sandbox Code Playgroud)
成
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']
Run Code Online (Sandbox Code Playgroud)
如果我可以在合并列表之前在每个项目的开头和结尾添加一个值,那就更好了,比如html标签.
即,最终结果将是:
['<tr>A</tr>', '<tr>B</tr>', '<tr>C</tr>', '<tr>D</tr>', '<tr>E</tr>', '<tr>F</tr>', '<tr>G</tr>', '<tr>H</tr>', '<tr>I</tr>']
Run Code Online (Sandbox Code Playgroud) 我正在阅读文档中的这个页面,并注意到它说
这是完整的Python语法,因为它由解析器生成器读取并用于解析Python源文件
但是,我很难找到CPython使用的解析器生成器.那么CPython使用什么解析器生成器呢?是否有其他解析器生成器可以在该页面上进行语法而不进行任何修改?
我正在查看GCC-4.8为x86_64生成的代码,并想知道是否有更好(更快)的方法来计算三个值的最小值.
下面是Python的摘录收集模块,计算最低的m,rightindex+1和leftindex:
ssize_t m = n;
if (m > rightindex + 1)
m = rightindex + 1;
if (m > leftindex)
m = leftindex;
Run Code Online (Sandbox Code Playgroud)
GCC使用CMOV生成依赖于序列的依赖代码:
leaq 1(%rbp), %rdx
cmpq %rsi, %rdx
cmovg %rsi, %rdx
cmpq %rbx, %rdx
cmovg %rbx, %rdx
Run Code Online (Sandbox Code Playgroud)
是否有更快的代码可以通过删除数据依赖性来利用处理器无序并行执行?我想知道是否存在用于计算多个值的最小值而不使用条件或谓词指令的已知技巧.我也想知道是否有一些饱和的算术内在函数可以帮助解决这种情况.
EDITS:
我有一个覆盖巨大搜索空间的迭代.我的计划不是让脚本终止,而是在一段时间之后杀死脚本.
现在我需要这个空间的笛卡尔积并在那里搜索.itertools.product产生这个订单:
>>> list(itertools.product(range(3), repeat=2))
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
Run Code Online (Sandbox Code Playgroud)
虽然我想按照类似于以下的对角线顺序进行搜索:
[(0, 0), (0, 1), (1, 0), (0, 2), (1, 1), (2, 0), (1, 2), (2, 1), (2, 2)]
Run Code Online (Sandbox Code Playgroud)
sorted使用一些返回元组元素总和的关键函数将是我的常规方法,但是对于排序所有数据都需要检查,这在我的情况下是不可行的.有没有办法做到这一点?
这个问题很相似,这一个,但sorted仍然是在回答中.此外,我不很快看到如何适应ordered_combinations到ordered_product.
python algorithm dynamic-programming combinatorics python-itertools
我有一个巨大的Python整数列表(1000000+元素),但为了简单起见,我将用一个例子来说明我需要的东西.我们假设我有这个清单:
A = [1,2,3,4,100]
Run Code Online (Sandbox Code Playgroud)
现在我想得到该列表的所有组合(大小3),所以我使用itertools.
combinations = itertools.combinations(A,3)
Run Code Online (Sandbox Code Playgroud)
但我的问题是,这将按字典顺序返回组合:
(1,2,3)
(1,2,4)
(1,2,100)
(1,3,4)
Run Code Online (Sandbox Code Playgroud)
等等.
我想得到按其元素总和排序的组合.那将是:
(1,2,3)总和6,(1,2,4)和7,(1,3,4)和8,
等等.
我怎样才能做到这一点?
我正在使用YAML和SQLAlchemy.我定义了我的对象,我能够使用YAML来打印就好了.但是,当我尝试在SQLAlchemy查询返回的对象上使用YAML时,它会因错误而失败can't pickle int objects.我打印出从SQLAlchemy返回的实例,它显示的是正确的类型.我会让代码说话:
class HashPointer(Base):
__tablename__ = 'hash_pointers'
id = Column(Integer, primary_key=True)
hash_code = Column(VARBINARY(64), unique=True)
file_pointer = Column(Text)
def __init__(self, hash_code, file_pointer):
self.hash_code = hash_code
self.file_pointer = file_pointer
def __repr__(self):
return "<HashPointer('%s', '%s')>" % (self.hash_code, self.file_pointer)
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
Engine = create_engine("mysql://user:pass@localhost/db", echo=True)
Session = sessionmaker(bind=Engine)
session = Session()
fhash = HashPointer(0x661623708235, "c:\\test\\001.txt")
# PRINTS FINE
print(yaml.dump(fhash))
for instance in session.query(HashPointer).all():
# PRINTS FINE AS __repr__
print instance
# THROWS ERROR, …Run Code Online (Sandbox Code Playgroud) 我想比较在python中找到函数根的不同方法(如牛顿方法或其他简单的基于calc的方法).我不认为编写算法会有太多麻烦.什么是进行实际比较的好方法?我读了一下Big-O.这会是要走的路吗?
(任何项目的想法或曲折也将不胜感激)
谢谢.
我正在尝试用Python 实现Dr. Dobbs的最大矩形算法(清单4).它主要起作用,但是一个特定情况会给出错误的结果,我无法弄清楚原因.
这是我的源代码:
from collections import namedtuple
Point = namedtuple('Point', ('X', 'Y'))
#Y 0 1 2 X
arr = [[0, 0, 0, ], #0
[1, 0, 0, ], #1
[0, 0, 1, ], #2
]
def area(ll, ur):
if (ll.X < 0) or (ll.Y < 0) or (ur.X < 0) or (ur.Y < 0):
return 0.
return ((ur.X - ll.X) + 1) * ((ur.Y - ll.Y) + 1)
def update_cache(a, c, x):
M = len(a[0])
N = …Run Code Online (Sandbox Code Playgroud) 我一直在自学自己的数据结构在python中,不知道我是否过度思考(或解密!)以下问题:
我的目标是提出一种有效的算法
使用该算法,我的目标是确定是否存在整数,使得A [i] = i在增加的整数数组中
然后我想找到大O符号的运行时间作为n的长度的函数?
所以这不会只是O(log n)的略微修改版本,其功能相当于:f(i)= A [i] - i.我读这个问题错了吗?任何帮助将不胜感激!
python ×8
algorithm ×4
performance ×2
arrays ×1
asdl ×1
assembly ×1
bisection ×1
c ×1
closures ×1
combinations ×1
decorator ×1
function ×1
intrinsics ×1
list ×1
math ×1
merge ×1
optimization ×1
parsing ×1
pickle ×1
search ×1
sorting ×1
sqlalchemy ×1
x86-64 ×1
yaml ×1