“Python”的版本间的差异
跳到导航
跳到搜索
实现 Rust 中的
(建立内容为“== 外部链接 == * [https://www.python.org/ 主页] * [https://docs.python.org/ 文档] Category:Python”的新页面) |
(→笔记) |
||
(未显示同一用户的5个中间版本) | |||
第1行: | 第1行: | ||
+ | == 笔记 == | ||
+ | |||
+ | === 数据结构 === | ||
+ | |||
+ | * 需要队列时使用 [https://docs.python.org/3/library/collections.html#collections.deque <code>collections.deque</code>],<code>queue</code> 模块是用于多线程同步的 | ||
+ | |||
+ | === 复杂度 === | ||
+ | |||
+ | * <code>len(a_list)</code> 复杂度为 O(1) | ||
+ | * <code>len(a_str)</code> 复杂度为 O(1) | ||
+ | *: 使用 {{code|python|2=python -m timeit -s 's = "abcde"*10000' 'len(s)'}} 测试,更改 <code>s</code> 的长度 | ||
+ | |||
+ | == 例子 == | ||
+ | |||
+ | === 实现 [[Rust]] 中的 <code>Iterator::skip</code> === | ||
+ | |||
+ | 忽略一个迭代器的前 n 个元素。 | ||
+ | |||
+ | <ref>[https://docs.python.org/3/library/itertools.html#itertools.islice itertools.islice 的文档]</ref> | ||
+ | |||
+ | <syntaxhighlight lang=python> | ||
+ | itertools.islice(iterable, stop) | ||
+ | itertools.islice(iterable, start, stop[, step]) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | <syntaxhighlight lang=python> | ||
+ | from itertools import islice | ||
+ | |||
+ | islice(iterator, n, None) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === 类的静态方法 === | ||
+ | |||
+ | <syntaxhighlight lang=python> | ||
+ | class Example: | ||
+ | @classmethod | ||
+ | def load(cls, filepath): | ||
+ | obj = cls.__new__(cls) | ||
+ | obj.foo = somefunc(filepath) | ||
+ | return obj | ||
+ | </syntaxhighlight> | ||
+ | |||
== 外部链接 == | == 外部链接 == | ||
* [https://www.python.org/ 主页] | * [https://www.python.org/ 主页] | ||
* [https://docs.python.org/ 文档] | * [https://docs.python.org/ 文档] | ||
+ | |||
+ | == 参考资料 == | ||
+ | |||
+ | <references /> | ||
[[Category:Python]] | [[Category:Python]] |
2021年7月15日 (四) 17:49的最新版本
笔记
数据结构
- 需要队列时使用
collections.deque
,queue
模块是用于多线程同步的
复杂度
len(a_list)
复杂度为 O(1)len(a_str)
复杂度为 O(1)- 使用
python -m timeit -s 's = "abcde"*10000' 'len(s)'
测试,更改s
的长度
- 使用
例子
实现 Rust 中的 Iterator::skip
忽略一个迭代器的前 n 个元素。
itertools.islice(iterable, stop)
itertools.islice(iterable, start, stop[, step])
from itertools import islice
islice(iterator, n, None)
类的静态方法
class Example:
@classmethod
def load(cls, filepath):
obj = cls.__new__(cls)
obj.foo = somefunc(filepath)
return obj