2016-10-08 5 views
-1

マイコード:どのように単語のリストやファイルなどの文でこれらの単語の位置を保存する

:(パイソン:v3.5.2)コードを達成しようとしている何

import time 
import sys 


def Word_Position_Finder(): 
    chosen_sentence = input("Make a simple sentence: ").upper() 
    print("") 
    print(chosen_sentence) 
    print("") 
    sentence_list = chosen_sentence.split() 
    if len(chosen_sentence) == 0: 
     print("Your sentence has no words.") 
     time.sleep(1) 
     Choose_To_Restart()   
    print(sentence_list) 
    print("") 
    time.sleep(1) 
    users_choice = input("Press '1' to make a new sentence or press '2' keep current sentence: ") 
    print("") 
    if users_choice == "1": 
     print("Restarting Program.") 
     time.sleep(1) 
     Restarting_Program()   
    elif users_choice == "2": 
     print("") 
     print("'" + chosen_sentence + "'" + " --- " + "Is your current sentence.") 
     print("") 
     time.sleep(1) 
     position = [] 
     for word in sentence_list: 
      postions = position.append(sentence_list.index(word) + 1) 
     print(position) 
     with open("Positions.txt", "w") as text_file: 
      print(chosen_sentence, position) 
    else: 
     print("That isn't a valid answer") 
     Choose_To_Restart() 

上記のコードは、ユーザーが選択した文章を受け取り、その文章をリストにして、そのリスト内のそれらの単語のそれぞれの位置を印刷し、ユーザーの文章とユーザーの文章の位置を単純な.txtファイル。

質問:

がどのように私は私のコードは、ユーザーの文とその.txtのファイルへのユーザーの文中の各単語の位置が保存されます.txtファイルを作成するのですか?

コードで発生している現在の問題は、コードが.txtファイルを作成しますが、そのファイルには何も保存されないということです。

+0

ここにはファイルへの書き込みは絶対にありません。研究をしてから試みてください。 – TigerhawkT3

+0

その合併症の目的は何ですか?文章だけを保存すると、すべての単語と位置で保存されます。 – zvone

+0

私は研究を行っています。その理由は、コードが読みにくくて見苦しいと思ってコードから除外した理由です。少なくとも私自身がそれを研究するのはATTEMPTではない;私は単純にそうする必要があるコードを知らない。 – Potato

答えて

1

文の単語を含むリストを繰り返します。各単語について、位置を見つけるための単語を含む他のリストに存在するかどうかを確認します。 を使用して、各単語のindexを保存します。

from collections import defaultdict 

my_sentence = 'this is my sentence where this content is supposed to be checked' 
sentence_words = my_sentence.split() 
my_dict = defaultdict(list) 
for i, item in enumerate(sentence_words): 
    my_dict[item].append(i) 

# content of 'my_dict': 
# {'this': [0, 5], 'is': [1, 7], 'where': [4]} 

参照してくださいPython Print String To Text Fileファイルに内容を書き込む方法に関する:以下のサンプルコードです。

+0

なぜ 'my_dict [item] .append(i)'だけではないのですか?なぜ、あなたは 'word_list'を使ったのですか? – coder

+0

私はOPが別のリストからいくつかの特定の単語の位置を印刷したいと思った。もう一度質問をしましたが、そうではありませんでした。回答を更新しました –

+0

ああ、私はあなたのコードを最後に使っていましたが、自分の編集を自分のバージョンに更新するのを忘れてしまっただけです。助けてくれてありがとう! – Potato

関連する問題