0

ファイルは次のようになります。

BURGER KING
BRG
MCDONALDS
MCDNLDS
WENDYS
WNDY

例:

food('abbreviations.txt')

Enter a fast food place: McDonalds

Abbreviation: MCDNLDS

Enter a fast food place:

Thank you!

これまでのところ:

infile = open(filename, 'r')

l = infile.readlines()

infile.close()

しかし、readlinesの後に何をすべきかわかりません

4

3 に答える 3

4

私はこれをするべきではありませんでしたが、私はこの演習が面白いと感じました. だからここに行きます:

lines = [i.strip() for i in l if i.strip()]
abbrev = dict(zip(lines[0::2], lines[1::2]))

次にabbrev、名前全体をキーとして検索して略語を取得する辞書/マッピングがあります。

ステートメントを理解したい場合は、インタラクティブな Python シェルで各部分を個別に試すことをお勧めします。

怠惰な StackOverflow リーダー向けに編集

以下は、いくつかの追加の提案を含む対話型セッションの例です。

>>> infile = open("abbreviations.txt", "r")
>>> lines = [l.strip() for l in infile]
>>> lines
['BURGER KING', '', 'BRG', '', 'MCDONALDS', '', 'MCDNLDS', '', 'WENDYS', '', 'WNDY']
>>> lines[0::4]
['BURGER KING', 'MCDONALDS', 'WENDYS']
>>> lines[2::4]
['BRG', 'MCDNLDS', 'WNDY']
>>> zip(lines[0::4], lines[2::4])
[('BURGER KING', 'BRG'), ('MCDONALDS', 'MCDNLDS'), ('WENDYS', 'WNDY')]
>>> abbrev = dict(zip(lines[0::4], lines[2::4]))
>>> abbrev
{'MCDONALDS': 'MCDNLDS', 'WENDYS': 'WNDY', 'BURGER KING': 'BRG'}
>>> abbrev["WENDYS"]
'WNDY'
于 2012-05-24T22:39:10.690 に答える
0

行をペアで読み取り、それぞれをキーと値にして、辞書に追加することができます。次に、(ループで)ユーザー入力を取得し、その辞書で入力された文字列を検索します。

于 2012-05-24T22:38:05.713 に答える
0

ここから始めましょう:

name_map = {}
last_line = False
for line in file.readlines():
    line = line.strip()

    if not line:
        # Blank line
        continue

    if not last_line:
        last_line = line
    else:
        name_map[last_line] = line
        last_line = False

本当にJSONのようなものを使用する必要があります。

于 2012-05-24T22:38:44.533 に答える