小编usu*_* me的帖子

如何复制Python字符串?

我这样做:

a = 'hello'
Run Code Online (Sandbox Code Playgroud)

现在我只想要一份独立的副本a:

import copy

b = str(a)
c = a[:]
d = a + ''
e = copy.copy(a)

map( id, [ a,b,c,d,e ] )
Run Code Online (Sandbox Code Playgroud)

出[3]:

[4365576160, 4365576160, 4365576160, 4365576160, 4365576160]
Run Code Online (Sandbox Code Playgroud)

为什么它们都有相同的内存地址,如何获得副本a

python string python-2.7

76
推荐指数
5
解决办法
11万
查看次数

functools.partial想要使用位置参数作为关键字参数

所以我想了解partial:

import functools

def f(x,y) :
    print x+y

g0 = functools.partial( f, 3 )
g0(1)

4 # Works as expected
Run Code Online (Sandbox Code Playgroud)

在:

g1 = functools.partial( f, y=3 )
g1(1)

4 # Works as expected
Run Code Online (Sandbox Code Playgroud)

在:

g2 = functools.partial( f, x=3 )
g2(1)

TypeError: f() got multiple values for keyword argument 'x'
Run Code Online (Sandbox Code Playgroud)

TypeError如果我y用作关键字参数,则消失:

在:

g2( y=1 )

4
Run Code Online (Sandbox Code Playgroud)

是什么导致的TypeError

python partial-application

26
推荐指数
1
解决办法
6371
查看次数

numpy.gradient做什么?

所以我知道(数学)函数的梯度是什么,所以我觉得我应该知道它是什么numpy.gradient.但我没有.该文件是不是真的有用之一:

返回N维数组的渐变.

数组的梯度是多少?什么时候numpy.gradient有用?

python math numpy

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

为什么一个类的主体在定义时被执行?

与函数相反,类的主体在定义时执行:

class A(object):
    print 'hello'
Run Code Online (Sandbox Code Playgroud)

日期:

hello
Run Code Online (Sandbox Code Playgroud)

为什么会这样?它与@classmethod/ @staticmethodmethods和class属性有关吗?

python class python-2.7 python-internals

16
推荐指数
2
解决办法
2760
查看次数

为什么类定义总是生成相同的字节码?

说我同意:

#!/usr/bin/env python
# encoding: utf-8

class A(object):
    pass
Run Code Online (Sandbox Code Playgroud)

现在我拆开它:

python -m dis test0.py 
  4           0 LOAD_CONST               0 ('A')
              3 LOAD_NAME                0 (object)
              6 BUILD_TUPLE              1
              9 LOAD_CONST               1 (<code object A at 0x1004ebb30, file "test0.py", line 4>)
             12 MAKE_FUNCTION            0
             15 CALL_FUNCTION            0
             18 BUILD_CLASS         
             19 STORE_NAME               1 (A)
             22 LOAD_CONST               2 (None)
             25 RETURN_VALUE        
Run Code Online (Sandbox Code Playgroud)

现在我在类定义中添加一些语句:

#!/usr/bin/env python
# encoding: utf-8

class A(object):
    print 'hello'
    1+1
    pass
Run Code Online (Sandbox Code Playgroud)

然后我又拆开了:

  4           0 LOAD_CONST               0 ('A')
              3 LOAD_NAME                0 (object)
              6 BUILD_TUPLE …
Run Code Online (Sandbox Code Playgroud)

python bytecode disassembly python-internals

13
推荐指数
1
解决办法
355
查看次数

Series.sort()和Series.order()之间有什么区别?

s = pd.Series( nr.randint( 0, 10, 5 ), index=nr.randint(0, 10, 5 ) )
s
Run Code Online (Sandbox Code Playgroud)

产量

1    3
7    6
2    0
9    7
1    6
Run Code Online (Sandbox Code Playgroud)

order() 按值排序并返回一个新系列

s.order()
Run Code Online (Sandbox Code Playgroud)

产量

2    0
1    3
7    6
1    6
9    7
Run Code Online (Sandbox Code Playgroud)

它看起来sort也按价值排序,但到位:

s.sort()
s
Run Code Online (Sandbox Code Playgroud)

产量

2    0
1    3
7    6
1    6
9    7
Run Code Online (Sandbox Code Playgroud)

这是两种方法的唯一区别吗?

python pandas

11
推荐指数
2
解决办法
6599
查看次数

bind参数在Redis中有什么作用?

bindRedis中的参数是什么?bind假设我已经知道什么bind意思(我不知道)的文档.是否bind设置的IP地址:

  • Redis服务器?(我认为这是正确的答案,但后来我不明白为什么我们需要这个)
  • 将被授权连接到Redis的客户端?(我试过但它不起作用,所以可能不正确)

redis

11
推荐指数
1
解决办法
6641
查看次数

Python多处理 - 为什么使用functools.partial比默认参数慢?

考虑以下功能:

def f(x, dummy=list(range(10000000))):
    return x
Run Code Online (Sandbox Code Playgroud)

如果我使用multiprocessing.Pool.imap,我会得到以下时间:

import time
import os
from multiprocessing import Pool

def f(x, dummy=list(range(10000000))):
    return x

start = time.time()
pool = Pool(2)
for x in pool.imap(f, range(10)):
    print("parent process, x=%s, elapsed=%s" % (x, int(time.time() - start)))

parent process, x=0, elapsed=0
parent process, x=1, elapsed=0
parent process, x=2, elapsed=0
parent process, x=3, elapsed=0
parent process, x=4, elapsed=0
parent process, x=5, elapsed=0
parent process, x=6, elapsed=0
parent process, x=7, elapsed=0
parent process, x=8, elapsed=0
parent process, …
Run Code Online (Sandbox Code Playgroud)

python python-3.x functools python-multiprocessing

11
推荐指数
1
解决办法
2796
查看次数

未命名的Python对象具有相同的id

让我们创建两个列表:

x = range(3)
y = range(3)
print id(x), id(y)
Run Code Online (Sandbox Code Playgroud)

日期:

4366592912 4366591040
Run Code Online (Sandbox Code Playgroud)

我创建了两个独立的列表,输出显示了两个不同的内存地址.这并不奇怪.但现在让我们在没有任务的情况下做同样的事情:

id(range(3))
Run Code Online (Sandbox Code Playgroud)

日期:

4366623376
Run Code Online (Sandbox Code Playgroud)

第二次:

id(range(3))
Run Code Online (Sandbox Code Playgroud)

日期:

4366623376
Run Code Online (Sandbox Code Playgroud)

我不知道如何解释这一点.为什么这两个未命名的列表具有相同的内存地址?

python python-2.7

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

我可以将map / imap / imap_unordered与不带参数的函数一起使用吗?

有时我需要使用没有参数的函数的多重处理。我希望我可以做类似的事情:

from multiprocessing import Pool

def f():  # no argument
    return 1

# TypeError: f() takes no arguments (1 given)
print Pool(2).map(f, range(10))
Run Code Online (Sandbox Code Playgroud)

我可以做Process(target=f, args=()),但我更喜欢的语法map/ imap/ imap_unordered。有没有办法做到这一点?

python python-multiprocessing

8
推荐指数
2
解决办法
4682
查看次数