小编use*_*ica的帖子

什么是__lt__实际上为列表做什么

假设我有两个列表,并运行以下命令

>>> s = [1, 2, 3]
>>> t = [1, 2, 4]
>>> s > t
False
>>> s < t
True
Run Code Online (Sandbox Code Playgroud)

但是,如果我要运行以下命令

>>> s = [1, 2, 3]
>>> t = [1, 1, 4]
>>> s > t
True
>>> s < t
False
Run Code Online (Sandbox Code Playgroud)

不得不承认,我对PY3代码库不太熟悉.这些__lt__, __le__, __gt__, __ge__, __ne__, __eq__方法究竟发生了什么?

python operator-overloading python-3.x

4
推荐指数
1
解决办法
757
查看次数

Python 中的静态数组

我正在学习如何用 python 编程,同时也在学习理论作为计算机科学课程的一部分。在编程中,我知道我可以通过使用 .append 函数向数组添加其他变量,但是在我的理论课程中,我们被告知数组的大小既不能增加也不能减少。

这在 python 中是如何工作的?

python arrays static python-3.x

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

地图(max())调用的Python语法

我在Python的"初学者"教程之一中遇到了这段特殊的代码.它没有逻辑意义,如果有人能向我解释,我会很感激.

print(list(map(max, [4,3,7], [1,9,2])))
Run Code Online (Sandbox Code Playgroud)

我认为它会打印[4,9](通过在每个提供的列表上运行max(),然后在每个列表中打印最大值).而是打印[4,9,7].为什么三个数字?

python syntax python-3.x

4
推荐指数
2
解决办法
133
查看次数

为什么Python中的(-27)**(1.0/3.0)不是-3.0?

在数学中,您可以采用负数的立方根,因为负数乘以两个其他负数会产生负数.将某事物提升到分数幂1/n与获取它的第n个根相同.因此,-27或(-27)**(1.0/3.0)的立方根出现-3.

但是在Python 2中,当我输入(-27)**(1.0/3.0)时,它会给我一个错误:

Traceback (most recent call last):
  File "python", line 1, in <module>
ValueError: negative number cannot be raised to a fractional power
Run Code Online (Sandbox Code Playgroud)

Python 3不会产生异常,但它提供的复数看起来不像-3:

>>> (-27)**(1.0/3.0)
(1.5000000000000004+2.598076211353316j)
Run Code Online (Sandbox Code Playgroud)

为什么我不能得到具有数学意义的结果?这是否有解决方法?

python

4
推荐指数
1
解决办法
269
查看次数

获取原始python可执行文件的路径(不是virtualenv)

在 virtualenv 中,sys.executable给出/path/to/venv/bin/python. 如何获取创建 virtualenv 的 python 路径,例如/usr/bin/python3

例如,

$ cd /tmp
$ virtualenv -p /usr/bin/python3 venv
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /tmp/venv/bin/python3
Also creating executable in /tmp/venv/bin/python
Installing setuptools, pip, wheel...
done.
$ venv/bin/python -c 'import sys; print(sys.executable)'
/tmp/venv/bin/python
Run Code Online (Sandbox Code Playgroud)

想要的答案是/usr/bin/python3

python virtualenv

4
推荐指数
1
解决办法
1419
查看次数

如何使未冻结的数据类实例可散列?

定义数据类时 frozen=False(默认行为),然后实例化这个类的一个对象时,有没有办法让这个对象可以散列?

为什么我需要这个?

在 Python 3.7 之前,我使用命名元组而不是数据类,我曾经使用 查找重复项set(),但我不能再使用它了。frozen=True由于其他原因,我不想在数据类上使用。

python python-dataclasses

4
推荐指数
1
解决办法
509
查看次数

python3中的sys.stdout.write在字符串末尾添加了11

有人可以解释为什么sys.stdout.write()附加11到我的字符串?

$ python3
Python 3.4.3+ (default, Jul 28 2015, 13:17:50) 
[GCC 4.9.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> x = 'hello'
>>> y = 'world'
>>> msg = ''
>>> import sys
>>> msg += x
>>> msg += '\n' + y 
>>> msg
'hello\nworld'
>>> sys.stdout.write(msg)
hello
world11
>>> print(msg)
hello
world
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
918
查看次数

为什么[范围(10)]和列表(范围(10))不一样?

为什么[range(10)]list(range(10))在Python 3有什么不同?

输出如下:

>>> print([range(10)])
[range(0, 10)]
>>> print(list(range(10)))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

python list range python-3.x

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

Python:Triple Double Quote字符串格式

我收到以下错误,我该如何解决?

KeyError:'a'过程以退出代码1结束

s = """
a b c {a}
""".format({'a':'123'})

print s
Run Code Online (Sandbox Code Playgroud)

python python-3.x

3
推荐指数
1
解决办法
883
查看次数

如果不同的Java泛型类型参数具有相同的名称,为什么可以为其分配不同的类型?

在oracle的官方java文档Type Inference章节中,有一个这样的例子:

static <T> T pick(T a1, T a2) { return a2; }  
Serializable s = pick("d", new ArrayList<String>());
Run Code Online (Sandbox Code Playgroud)

在这种情况下,类型参数是T但是传递了两种不同的类型,不应该a1的类型与a2相同吗?

java generics

3
推荐指数
1
解决办法
46
查看次数