파이썬은 다중 스레드로 최적화합니까?

라마 드 바라

이 글을 잘못된 포럼에 게시하면 미안하지만 다중 스레드, 프로세스 또는 기타 개선 사항으로 더 빠르게 실행되도록 코드를 개선 할 수있는 방법이 있습니까?

이 스크립트의 목적은 입력 한 단어를 기반으로 스크래블 게임에 가능한 모든 단어를 찾아서 스크래블 점수를 계산하는 것입니다.

7 자 이상의 단어를 입력하면 계산하는 데 시간이 오래 걸립니다.

scores = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2,
     "f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3,
     "l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1,
     "r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4,
     "x": 8, "z": 10}

WORDS = []
combs = dict()

def prepareDict(file):
    try:
        f = open(file, 'r')
        for line in f:
            WORDS.append(line.rstrip().lower())
    except OpenErrors:
        print("Could not open file")
    finally:
        f.close()

def combinations(word):
    for i in range(len(word)+1):
        combList = itertools.permutations(word, i)
        for item in combList:
            item = ''.join(item)
            if item in WORDS:
                value = 0
                for c in item:
                    value += int(scores.get(c))
                combs[item] = value
    return (combs)

if __name__ == "__main__":
prepareDict('sowpods.txt')
if len(sys.argv) > 2 or len(sys.argv) < 2:
    print("usage: %s <word>" % sys.argv[0])
    sys.exit(1)
else:
    word = sys.argv[1].lower()

combs = combinations(word)
sorted_combs = sorted(combs.items(), key=operator.itemgetter(1), reverse=True)
for word in sorted_combs:
    print(word)
Salparadise

변경 WORDS = []set():

WORDS = set()

그런 다음 단어를 추가하는 방법을 변경하십시오.

에서:

WORDS.append(line.rstrip().lower())

에:

WORDS.add(line.rstrip().lower())

목록을 사용할 이유가 없습니다. 이렇게하면 성능이 향상됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬은 휴면 중일 때 스레드를 종료합니다.

분류에서Dev

파이썬 코드를 최적화하려면 도움이 필요합니다

분류에서Dev

PyQt4에서 다중 스레드 파이썬 GUI의 올바른 구현은 무엇입니까

분류에서Dev

파이썬은 기본적으로 스레드를 사용합니까?

분류에서Dev

LSF에서 사용하기 위해 다중 스레드 프로그램을 최적화하는 방법은 무엇입니까?

분류에서Dev

안드로이드, 다중 스레드, 동기화

분류에서Dev

파이썬은 스프레드 시트의 모든 행을 반복합니다

분류에서Dev

파이썬 다중 스레드 성능

분류에서Dev

파이썬은 2 개의 스레드로 '객체를 호출 할 수 없습니다'를 얻습니다.

분류에서Dev

파이썬에서 많은 데이터를 처리하는 중, 여러 스레드 / 프로세스를 사용해야합니까?

분류에서Dev

트레스 홀드 파이썬보다 작은 면적 비율로 연결된 픽셀 수 제거

분류에서Dev

다음은 마이크로 최적화로 간주됩니까?

분류에서Dev

파이썬 스레드가 스레딩이 아닙니다.

분류에서Dev

vim은 다중 스레드입니까?

분류에서Dev

다중 스레드 파이썬 액세스가 동기화 된 것 같습니다.

분류에서Dev

win32 프로그램이 항상 다중 스레드 여야합니까?

분류에서Dev

apt-get 업그레이드 다운로드를 최적화하기 위해 "델타"패키지를 얻으려면 어떻게해야합니까?

분류에서Dev

apt-get 업그레이드 다운로드를 최적화하기 위해 "델타"패키지를 얻으려면 어떻게해야합니까?

분류에서Dev

apt-get 업그레이드 다운로드를 최적화하기 위해 "델타"패키지를 얻으려면 어떻게해야합니까?

분류에서Dev

파이썬은 파일에서 데이터를 한 줄로로드합니다.

분류에서Dev

파이썬 프로세스 내에서 다중 레벨 포인터의 값을 어떻게 조회합니까?

분류에서Dev

Windows 10 "드라이브 최적화"는 SSD를 "하드 디스크 드라이브"로 표시합니다.

분류에서Dev

파이썬 셀레늄은! important로 CSS를 보냅니다.

분류에서Dev

데이터베이스 및 LINQ 최적화 후 웹앱이 CPU를 오버로드합니다. SQL Server를 더 느리게 실행할 수 있습니까?

분류에서Dev

파이썬 재로드 스레드는 안전합니까?

분류에서Dev

MySQL은 Explain으로 느린 쿼리를 최적화합니다.

분류에서Dev

이것은 다중 스레드 비디오 코처 프로그램을위한 적절한 구조입니까?

분류에서Dev

다중 스레드 아파트의 목적은 무엇입니까?

분류에서Dev

파이썬에서 다중 처리를 사용하여 프로세스 내부에 프로세스를 만드는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    파이썬은 휴면 중일 때 스레드를 종료합니다.

  2. 2

    파이썬 코드를 최적화하려면 도움이 필요합니다

  3. 3

    PyQt4에서 다중 스레드 파이썬 GUI의 올바른 구현은 무엇입니까

  4. 4

    파이썬은 기본적으로 스레드를 사용합니까?

  5. 5

    LSF에서 사용하기 위해 다중 스레드 프로그램을 최적화하는 방법은 무엇입니까?

  6. 6

    안드로이드, 다중 스레드, 동기화

  7. 7

    파이썬은 스프레드 시트의 모든 행을 반복합니다

  8. 8

    파이썬 다중 스레드 성능

  9. 9

    파이썬은 2 개의 스레드로 '객체를 호출 할 수 없습니다'를 얻습니다.

  10. 10

    파이썬에서 많은 데이터를 처리하는 중, 여러 스레드 / 프로세스를 사용해야합니까?

  11. 11

    트레스 홀드 파이썬보다 작은 면적 비율로 연결된 픽셀 수 제거

  12. 12

    다음은 마이크로 최적화로 간주됩니까?

  13. 13

    파이썬 스레드가 스레딩이 아닙니다.

  14. 14

    vim은 다중 스레드입니까?

  15. 15

    다중 스레드 파이썬 액세스가 동기화 된 것 같습니다.

  16. 16

    win32 프로그램이 항상 다중 스레드 여야합니까?

  17. 17

    apt-get 업그레이드 다운로드를 최적화하기 위해 "델타"패키지를 얻으려면 어떻게해야합니까?

  18. 18

    apt-get 업그레이드 다운로드를 최적화하기 위해 "델타"패키지를 얻으려면 어떻게해야합니까?

  19. 19

    apt-get 업그레이드 다운로드를 최적화하기 위해 "델타"패키지를 얻으려면 어떻게해야합니까?

  20. 20

    파이썬은 파일에서 데이터를 한 줄로로드합니다.

  21. 21

    파이썬 프로세스 내에서 다중 레벨 포인터의 값을 어떻게 조회합니까?

  22. 22

    Windows 10 "드라이브 최적화"는 SSD를 "하드 디스크 드라이브"로 표시합니다.

  23. 23

    파이썬 셀레늄은! important로 CSS를 보냅니다.

  24. 24

    데이터베이스 및 LINQ 최적화 후 웹앱이 CPU를 오버로드합니다. SQL Server를 더 느리게 실행할 수 있습니까?

  25. 25

    파이썬 재로드 스레드는 안전합니까?

  26. 26

    MySQL은 Explain으로 느린 쿼리를 최적화합니다.

  27. 27

    이것은 다중 스레드 비디오 코처 프로그램을위한 적절한 구조입니까?

  28. 28

    다중 스레드 아파트의 목적은 무엇입니까?

  29. 29

    파이썬에서 다중 처리를 사용하여 프로세스 내부에 프로세스를 만드는 방법은 무엇입니까?

뜨겁다태그

보관