'.join'함수를 사용하기 위해 목록을 float로 변환하는 방법은 무엇입니까?

사 메르

원본 파일을 다시 만들려면 파일을 단어 목록과 위치 목록으로 압축해야합니다. 내 프로그램은 또한 압축 된 파일을 가져 와서 원본 파일의 구두점과 대소 문자를 포함한 전체 텍스트를 다시 만들 수 있어야합니다. 내 프로그램은 목록이기 때문에 '['때문에 내 위치 목록을 수레로 변환 할 수 없습니다.

내 코드는 다음과 같습니다.

text = open("speech.txt")
CharactersUnique = []
ListOfPositions = []
DownLine = False

while True:
    line = text.readline()
    if not line:
        break

    TwoList = line.split()
    for word in TwoList:
        if word not in CharactersUnique:
            CharactersUnique.append(word)

        ListOfPositions.append(CharactersUnique.index(word))
    if not DownLine:
        CharactersUnique.append("\n")
        DownLine = True
    ListOfPositions.append(CharactersUnique.index("\n"))

w = open("List_WordsPos.txt", "w")
for c in CharactersUnique:
    w.write(c)
w.close()

x = open("List_WordsPos.txt", "a")
x.write(str(ListOfPositions))
x.close()

with open("List_WordsPos.txt", "r") as f:
    NewWordsUnique = f.readline()
    f.close()

h = open("List_WordsPos.txt", "r")
lines = h.readlines()
NewListOfPositions = lines[1]

NewListOfPositions = map(float, NewListOfPositions) 

print("Recreated Text:\n")
recreation = " " .join(NewWordsUnique[pos] for pos in (NewListOfPositions))
print(recreation)

내가 얻는 오류는 다음과 같습니다.

Task 3 Code.py", line 42, in <genexpr>
recreation = " " .join(NewWordsUnique[pos] for pos in (NewListOfPositions))
ValueError: could not convert string to float: '['

Python IDLE 3.5 (32 비트)를 사용하고 있습니다. 누구든지 이것을 고치는 방법에 대한 아이디어가 있습니까?

Martineau

의 위치 값 listlist인덱스이고 정수 여야하는 부동 소수점 으로 바꾸려는 이유는 무엇 입니까? 나는 이것이 XY 문제 라고 불리는 것의 예라고 생각했다 .

또한 PEP 8-Style Guide for Python Code를 따르지 않았기 때문에 코드를 이해하기 어렵다는 것을 알았습니다 . 특히, CamelCased가이드 라인에 따라 클래스 이름을 위해 예약해야하는 변수 이름의 수 (모두는 아니지만) 가 있습니다.

또한 일부 변수에는 CharactersUnique실제로 [대부분] 고유 한 단어가 포함 된와 같이 잘못된 이름이 있습니다.

그래서 제가했던 첫 번째 작업 중 하나는 모든 CamelCased변수를 소문자와 같이 소문자 밑줄로 구분 된 단어로 변환하는 것 camel_case입니다. 몇몇 경우에 나는 또한 그들의 실제 내용이나 역할을 반영하기 위해 그들에게 더 나은 이름을 주었다. 예를 들어 : CharactersUniqueunique_words.

다음 단계는 with블록의 끝에서 모든 파일이 자동으로 닫히도록 Python의 명령문을 사용하여 파일 처리를 개선하는 것이 었습니다 . 다른 경우에는 여러 파일 open()호출을 하나로 통합했습니다 .

결국 거의 효과가 있었지만 그 때 개행 "\n"문자를 입력 텍스트 파일의 개별 단어로 처리하는 접근 방식에 문제가 있음을 발견했습니다 . 이로 인해 파일이 다음 표현식에 의해 다시 생성 될 때 문제가 발생했습니다.

" ".join(NewWordsUnique[pos] for pos in (NewListOfPositions))

"\n"원래 파일에없는 모든 문자가 발견 되기 전후에 하나의 공백을 추가하기 때문 입니다. 이 문제를 해결하기 for위해 목록 이해력을 사용하는 대신 파일을 다시 생성 하는 루프를 작성했습니다. 그렇게하면 개행 "단어"를 올바르게 처리 할 수 ​​있기 때문입니다.

어쨌든 다음은 재 작성된 (그리고 작동하는) 코드입니다.

input_filename = "speech.txt"
compressed_filename = "List_WordsPos.txt"

# Two lists to represent contents of input file.
unique_words = ["\n"]  # preload with newline "word"
word_positions = []

with open(input_filename, "r") as input_file:
    for line in input_file:
        for word in line.split():
            if word not in unique_words:
                unique_words.append(word)
            word_positions.append(unique_words.index(word))

        word_positions.append(unique_words.index("\n"))  # add newline at end of each line

# Write representations of the two data-structures to compressed file.
with open(compressed_filename, "w") as compr_file:
    words_repr = " ".join(repr(word) for word in unique_words)
    compr_file.write(words_repr + "\n")
    positions_repr = " ".join(repr(posn) for posn in word_positions)
    compr_file.write(positions_repr + "\n")

def strip_quotes(word):
    """Strip the first and last characters from the string (assumed to be quotes)."""
    tmp = word[1:-1]
    return tmp if tmp != "\\n" else "\n"  # newline "words" are special case

# Recreate input file from data in compressed file.
with open(compressed_filename, "r") as compr_file:
    line = compr_file.readline()
    new_unique_words = list(map(strip_quotes, line.split()))
    line = compr_file.readline()
    new_word_positions = map(int, line.split())  # using int, not float here

words = []
lines = []
for posn in new_word_positions:
    word = new_unique_words[posn]
    if word != "\n":
        words.append(word)
    else:
        lines.append(" ".join(words))
        words = []

print("Recreated Text:\n")
recreation = "\n".join(lines)
print(recreation)

speech.txt질문의 첫 번째 단락에서 자체 테스트 파일을 만들고 다음 결과로 스크립트를 실행했습니다.

Recreated Text:

I have to compress a file into a list of words and list of positions to recreate
the original file. My program should also be able to take a compressed file and
recreate the full text, including punctuation and capitalization, of the
original file. I have everything correct apart from the recreation, using the
map function my program can't convert my list of positions into floats because
of the '[' as it is a list.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 함수 / for 루프를 파이썬을 사용하여 목록 이해력 또는 고차 함수로 변환하는 방법은 무엇입니까?

분류에서Dev

FputCSV를 사용하여 CSV 내보내기를 위해 배열을 배열 목록으로 변환하는 방법은 무엇입니까?

분류에서Dev

나중에 사용하기 위해 각 반환 값을 변수로 얻는 방법은 무엇입니까?

분류에서Dev

파이썬 목록을 자르기 위해 변수를 사용하는 방법은 무엇입니까?

분류에서Dev

Bash를 사용하여 목록 환경 변수를 확인하기 위해 배열을 반복하는 방법은 무엇입니까?

분류에서Dev

jq를 사용하여 객체 목록을 목록 객체로 변환하는 방법은 무엇입니까?

분류에서Dev

Universal Image Loader를 사용하기 위해 배열 목록을 문자열 배열로 변경하는 방법은 무엇입니까?

분류에서Dev

배열을 반환하기 위해 malloc () 함수를 사용하는 방법은 무엇입니까?

분류에서Dev

값에 의해 주어진 반복 횟수를 사용하여 사전을 키 목록으로 변환하는 방법은 무엇입니까?

분류에서Dev

목록을 사전 객체로 변환하고 함수에서 반환하는 방법은 무엇입니까?

분류에서Dev

목록을 사전 객체로 변환하고 함수에서 반환하는 방법은 무엇입니까?

분류에서Dev

Q : AngularJs에서 매개 변수로 함수를 실행하기 위해 ng-repeat onClick을 사용하는 방법은 무엇입니까?

분류에서Dev

숫자 목록을 정수로 변환하는 방법은 무엇입니까?

분류에서Dev

HTML 목록을 구문 분석하기 위해 XPATH를 사용하는 방법은 무엇입니까?

분류에서Dev

HTML 목록을 구문 분석하기 위해 XPATH를 사용하는 방법은 무엇입니까?

분류에서Dev

to_dict ()를 사용하여 Pandas DataFrame을 목록 사전으로 변환하는 방법은 무엇입니까?

분류에서Dev

LINQ를 사용하여 목록을 사전으로 변환하는 방법은 무엇입니까?

분류에서Dev

다른 함수를 호출하는 인수 목록을 사용하는 함수를 정의하기 위해 C ++ 매크로를 만드는 방법은 무엇입니까?

분류에서Dev

upstart 작업을 위해 파일에서 환경 변수를로드하는 방법은 무엇입니까?

분류에서Dev

포트로 IP 주소를 얻기 위해 목록을 연결하는 방법은 무엇입니까?

분류에서Dev

Jquery UI datepicker와 함께 사용하기 위해 PHP 배열을 자바 스크립트 배열로 변환하는 방법은 무엇입니까?

분류에서Dev

JMESPath를 사용하여 목록을 스트림으로 변환하는 방법은 무엇입니까?

분류에서Dev

'AngularJS'를 사용하여 키-값 쌍을 배열 목록으로 변환하는 방법은 무엇입니까?

분류에서Dev

단어 목록으로 WPA를 크랙하기 위해 CentOS 7에서 hashcat을 사용하는 방법은 무엇입니까?

분류에서Dev

목록을 정렬하기 위해 Scrapy의 ItemLoader에서 출력 프로세서를 사용하는 방법은 무엇입니까?

분류에서Dev

평균을 얻기 위해 varchar를 int로 변환하는 방법은 무엇입니까?

분류에서Dev

jenkins-job-builder를 사용하기 위해 jenkins 작업 구성 config.xml을 Python의 YAML 형식으로 변환하는 방법은 무엇입니까?

분류에서Dev

R에서 여러 하위 목록을 통해 함수를 실행하는 방법은 무엇입니까?

분류에서Dev

dict 함수없이 사전을 튜플 목록으로 변환하는 방법은 무엇입니까? [PYTHON]

Related 관련 기사

  1. 1

    이 함수 / for 루프를 파이썬을 사용하여 목록 이해력 또는 고차 함수로 변환하는 방법은 무엇입니까?

  2. 2

    FputCSV를 사용하여 CSV 내보내기를 위해 배열을 배열 목록으로 변환하는 방법은 무엇입니까?

  3. 3

    나중에 사용하기 위해 각 반환 값을 변수로 얻는 방법은 무엇입니까?

  4. 4

    파이썬 목록을 자르기 위해 변수를 사용하는 방법은 무엇입니까?

  5. 5

    Bash를 사용하여 목록 환경 변수를 확인하기 위해 배열을 반복하는 방법은 무엇입니까?

  6. 6

    jq를 사용하여 객체 목록을 목록 객체로 변환하는 방법은 무엇입니까?

  7. 7

    Universal Image Loader를 사용하기 위해 배열 목록을 문자열 배열로 변경하는 방법은 무엇입니까?

  8. 8

    배열을 반환하기 위해 malloc () 함수를 사용하는 방법은 무엇입니까?

  9. 9

    값에 의해 주어진 반복 횟수를 사용하여 사전을 키 목록으로 변환하는 방법은 무엇입니까?

  10. 10

    목록을 사전 객체로 변환하고 함수에서 반환하는 방법은 무엇입니까?

  11. 11

    목록을 사전 객체로 변환하고 함수에서 반환하는 방법은 무엇입니까?

  12. 12

    Q : AngularJs에서 매개 변수로 함수를 실행하기 위해 ng-repeat onClick을 사용하는 방법은 무엇입니까?

  13. 13

    숫자 목록을 정수로 변환하는 방법은 무엇입니까?

  14. 14

    HTML 목록을 구문 분석하기 위해 XPATH를 사용하는 방법은 무엇입니까?

  15. 15

    HTML 목록을 구문 분석하기 위해 XPATH를 사용하는 방법은 무엇입니까?

  16. 16

    to_dict ()를 사용하여 Pandas DataFrame을 목록 사전으로 변환하는 방법은 무엇입니까?

  17. 17

    LINQ를 사용하여 목록을 사전으로 변환하는 방법은 무엇입니까?

  18. 18

    다른 함수를 호출하는 인수 목록을 사용하는 함수를 정의하기 위해 C ++ 매크로를 만드는 방법은 무엇입니까?

  19. 19

    upstart 작업을 위해 파일에서 환경 변수를로드하는 방법은 무엇입니까?

  20. 20

    포트로 IP 주소를 얻기 위해 목록을 연결하는 방법은 무엇입니까?

  21. 21

    Jquery UI datepicker와 함께 사용하기 위해 PHP 배열을 자바 스크립트 배열로 변환하는 방법은 무엇입니까?

  22. 22

    JMESPath를 사용하여 목록을 스트림으로 변환하는 방법은 무엇입니까?

  23. 23

    'AngularJS'를 사용하여 키-값 쌍을 배열 목록으로 변환하는 방법은 무엇입니까?

  24. 24

    단어 목록으로 WPA를 크랙하기 위해 CentOS 7에서 hashcat을 사용하는 방법은 무엇입니까?

  25. 25

    목록을 정렬하기 위해 Scrapy의 ItemLoader에서 출력 프로세서를 사용하는 방법은 무엇입니까?

  26. 26

    평균을 얻기 위해 varchar를 int로 변환하는 방법은 무엇입니까?

  27. 27

    jenkins-job-builder를 사용하기 위해 jenkins 작업 구성 config.xml을 Python의 YAML 형식으로 변환하는 방법은 무엇입니까?

  28. 28

    R에서 여러 하위 목록을 통해 함수를 실행하는 방법은 무엇입니까?

  29. 29

    dict 함수없이 사전을 튜플 목록으로 변환하는 방법은 무엇입니까? [PYTHON]

뜨겁다태그

보관