小编sam*_*249的帖子

完整的 Python 标点符号集(不仅仅是 ASCII)

是否有包含我们可能经常遇到的所有标点符号的列表或库?

通常我使用string.punctuation,但其中不包含一些标点符号,例如:

>>> "'" in string.punctuation
True
>>> "’" in string.punctuation
False
Run Code Online (Sandbox Code Playgroud)

python string unicode

41
推荐指数
2
解决办法
4291
查看次数

消歧 sizeof

使用时,sizeof我总是将它括在括号中,因为它对我来说更容易阅读,即使有时我可以省略它,在下面的第一种情况下

sizeof unary-expression
sizeof ( type-name )
Run Code Online (Sandbox Code Playgroud)

我的问题是括号如何消除编译器的歧义?什么是这样的例子:

sizeof char
Run Code Online (Sandbox Code Playgroud)

对编译器来说会模棱两可吗?

c

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

如何检查以确保列表中的所有项目都属于某种类型

我想强制列表中的所有项目都是 type x。什么是最好的方法来做到这一点?目前我正在做如下断言:

a = [1,2,3,4,5]
assert len(a) == len([i for i in a if isinstance(i, int)])
Run Code Online (Sandbox Code Playgroud)

int我要在这里强制执行的类型在哪里。有一个更好的方法吗?

python

15
推荐指数
2
解决办法
717
查看次数

定义异常时不必要的传递

我经常会编写一个通用异常,如下所示:

class MyException(Exception):
    "My custom exception."
    pass
Run Code Online (Sandbox Code Playgroud)

这样我就可以检查该异常是否是我想要的异常(例如块)try/except。然而pylint对此的抱怨如下:

不必要的通行证:不必要的通行证声明

这项投诉背后的理由是什么?是否有更优选的方法来执行上述操作?即使 python 文档也建议对用户定义的异常使用类似的东西:

class Error(Exception):
    """Base class for exceptions in this module."""
    pass
Run Code Online (Sandbox Code Playgroud)

python pylint python-3.x

15
推荐指数
1
解决办法
4877
查看次数

如何在 Mac 上查看具有所有格式的剪贴板

如何在 Mac 上查看应用了所有格式的剪贴板?例如,如果我在 Excel 中复制粘贴表格,它不仅会复制文本,还会复制格式(我相信它会将其作为 html 对象复制到剪贴板)。我会如何看待这一点?我发现的最接近的是Finder Clipboardorpbcopy但它似乎只显示原始文本,没有实际的辅助格式。换句话说,我想查看剪贴板中的文字数据,而不仅仅是粘贴到纯文本编辑中的文本。这怎么可能做到呢?

# this data should have formatting...
$ pbpaste
2019    Q1
2018    Q1
Run Code Online (Sandbox Code Playgroud)

unix macos clipboard copy-paste

12
推荐指数
1
解决办法
1859
查看次数

滚动算法——改进数据的获取和显示

我想提出一些理论问题。

假设我有一个无限滚动,实现了如下所述的内容:https : //medium.com/frontend-journeys/how-virtual-infinite-scrolling-works-239f7ee5aa58。没什么好看的,说它是一张数据表,比如说NxN就够了,用户可以向下和向右滚动,就像电子表格一样,它只会显示当前视图中的数据加减一个处理。

现在,我们还假设在该视图中“获取和显示”数据大约需要 10 毫秒,使用如下函数:

get_data(start_col, end_col, start_row, end_row);
Run Code Online (Sandbox Code Playgroud)

当单击滚动条中的某处或执行“轻微滚动”以呈现必要的数据时,这会立即加载。但是,我们还假设对于每个“未完成的获取事件”,呈现必要的视图数据所需的时间加倍(由于内存、gc 和其他一些原因)。因此,如果我以缓慢的故意方式从左到右滚动,我可能会生成 100 多个滚动事件,这些事件会触发数据加载——起初明显延迟为零。获取在 10 毫秒内发生,但很快就开始需要 20 毫秒,然后是 40 毫秒,现在我们有一个明显的延迟,直到加载必要的数据超过一秒。此外,我们不能使用诸如去抖动/延迟之类的东西,

我需要考虑哪些因素以及实现此目的的示例算法是什么样的?这是我希望对数据进行的用户交互示例,假设有一个 10000 x 10000 的电子表格(尽管 Excel 可以一次加载所有数据)——https://gyazo.com/0772f941f43f9d14f884b7afeac9f414

javascript algorithm performance canvas virtualscroll

10
推荐指数
2
解决办法
1951
查看次数

理解Python的ast中的ctx

ctxPython AST 表示中的参数是什么?例如:

>>> print(ast.dump(ast.parse('-a')))
Module(body=[Expr(value=UnaryOp(op=USub(), operand=Name(id='a', ctx=Load())))])
Run Code Online (Sandbox Code Playgroud)

换句话说,这ctx=Load()意味着什么或做什么?我从文档中看到的唯一信息是 ctx 可能是以下之一:

expr_context = Load | Store | Del | AugLoad | AugStore | Param
Run Code Online (Sandbox Code Playgroud)

https://docs.python.org/3.7/library/ast.html。有人可以解释一下各种情况expr_context以及它们的作用吗?我想 lhs 和 rhs 是存储/加载:

>>> print(ast.dump(ast.parse('b=-a')))
Module(body=[Assign(targets=[Name(id='b', ctx=Store())], value=UnaryOp(op=USub(), operand=Name(id='a', ctx=Load())))])
Run Code Online (Sandbox Code Playgroud)

但除此之外,还有哪些其他选择?


更新:另外,是的,还有另一个与此类似的问题,Python AST:几个语义不清楚,例如 expr_context,但接受的答案以 开头,"After some more testing and guessing:..."并且它在细节上相当简单(至少可以说)。我希望真正了解该ast模块的人可以提供更全面的答案。

python abstract-syntax-tree python-3.x python-internals

9
推荐指数
1
解决办法
2222
查看次数

re.match、re.search、re.fullmatch 之间的差异

正则表达式文档它说:

模式.匹配(...)

如果字符串开头的零个或多个字符与此正则表达式匹配

Pattern.fullmatch(...)

如果整个字符串匹配这个正则表达式

模式.search(...)

扫描字符串以查找此正则表达式产生匹配的第一个位置

鉴于上述情况,为什么有人不能总是习惯于search做所有事情?例如:

re.search(r'...'   # search
re.search(r'^...'  or re.search(r'\A...'   # match
re.search(r'^...$' or re.search(r'\A...\Z' # fullmatch
Run Code Online (Sandbox Code Playgroud)

matchfullmatch刚才的快捷方式(如果他们可以被称为是)的search方法?或者它们还有我忽略的其他用途吗?

python regex

8
推荐指数
1
解决办法
6981
查看次数

至少需要一个词边界

我希望创建一个正则表达式,它允许一个或两个单词边界,但不能为零。

例如,对于单词term

  • a term is <-- 是的,前后空格(两个边界)
  • the terms are <-- 是的,前面有空格(一个边界)
  • the midterm was <-- 是的,后面的空格(一个边界)
  • the midterms were <-- 否(零字边界)

会是最好的正则表达式吗?我最初的想法是:

但这似乎太冗长了。什么可能是更好的?

regex

8
推荐指数
1
解决办法
78
查看次数

了解 TypeVar 的用法

当谈到 时Generics,python 给出了以下示例:

from collections.abc import Sequence
from typing import TypeVar

T = TypeVar('T')      # Declare type variable

def first(l: Sequence[T]) -> T:   # Generic function
    return l[0]
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下TypeVar这种情况下的作用吗?例如,如果它可以是任何东西,为什么不直接赋予它值呢Any?如果它受到限制,为什么不给它一个Union值呢?换句话说,使用有什么用处TypeVar(...)

我想在回顾上面的内容时,它是在某种子元素的元素时使用的?例如,它可以是:

[{set1}, {set2}, {set3}, ...]
Run Code Online (Sandbox Code Playgroud)

那种类型是Sequence[set] -> set

但像这样的事情:

[1, 2, 3, ...]
Run Code Online (Sandbox Code Playgroud)

会有类型Sequence[int] -> int。除了这个“item-in-iterable”之外还有其他用法吗?

python

7
推荐指数
1
解决办法
3683
查看次数