2014-09-10 8 views
0

이것은 호기심입니다. 내가 대화 형 IPython을 사용하고 인사하는 기본 수입으로 다른 라이브러리에서 비슷한 이름의 함수를 가져온 후 표준 라이브러리에서 가져 오기 기능

from numpy import sum 

나는 표준 라이브러리에서 sum를 사용하기로 결정 그 이후

. 예를 들면 다음과 같이 할 수 있습니다.

texts = [['a','good','day'],['a','lovely','day']] 
sum(texts, []) 

할 수 있습니까? 방법?

  • 목록을 병합하는 솔루션은 필요하지 않습니다. 다른 라이브러리를 가져 오는 것처럼 표준 라이브러리를 가져 오는 일반적인 솔루션이 필요하거나 함수의 섀도 잉을 피하는 방법이 필요합니다.

    >>> from numpy import sum 
    >>> texts = [['a','good','day'],['a','lovely','day']] 
    >>> sum(texts, []) 
    Traceback (most recent call last): 
    [...] 
    TypeError: cannot perform reduce with flexible type 
    >>> __builtin__.sum(texts, []) 
    ['a', 'good', 'day', 'a', 'lovely', 'day'] 
    >>> from __builtin__ import sum 
    >>> sum(texts, []) 
    ['a', 'good', 'day', 'a', 'lovely', 'day'] 
    

    그러나 두 지점 :

답변

2

당신은 __builtin__ (파이썬 2) 또는 builtins (파이썬 3)에서 액세스 할 수 있습니다

(1) IPython은 하지 수입 NumPy와의 합을한다 기본적으로 - 기존의 pylab 모드에서 작업하지 않는 한, 그렇게하지 않아야합니다. :-)

(2) sum은 합치기 목록을 연결하기 위해 sum(something, [])을 사용하면 2 차 동작을 나타내므로 일반적으로 피해야하기 때문에 좋은 예가 아닙니다.

+0

감사! [gensim tutorial] (http://radimrehurek.com/gensim/tut1.html)에서 가져온 예제. – dmvianna