0

次の形式のファイルがあります。

>abc
qqqwqwqwewrrefee
eededededededded
dededededededd
>bcd
swswswswswswswws
wswswsddewewewew
wrwwewedsddfrrfe
>fgv
wewewewewewewewew
wewewewewewewxxee
wwewewewe

(>abc,>bcd,>fgv) をキーとして、その下の文字列を値として辞書を作成しようとしていました。キーを抽出できましたが、値の更新について混乱しました。助けてください。

file2 = open("ref.txt",'r')
for line in file2.readlines():
    if ">" in line:
    print (line)
4

4 に答える 4

3

値を「更新」することについて何を意味するのかわかりませんが、これを試してください:

mydict=[]
with open("ref.txt", "r") as file2:
    current = None
    for line in file2.readlines():
        if line[0] == ">":
            current = line[1:-1]
            mydict[current] = ""
        elif current:
            mydict[current] += line # use line[:-1] if you don't want the '\n'

In [2]: mydict
Out[2]: {'abc': 'qqqwqwqwewrrefee\neededededededded\ndededededededd\n',
         'bcd': 'swswswswswswswws\nwswswsddewewewew\nwrwewedsddfrrfe\n',
         'fgv': 'wewewewewewewewew\nwewewewewewewxxee\nwwewewewe\n'}
于 2012-12-25T10:48:10.680 に答える
1
dictionary = {}
with open("file.txt","r") as r:
    for line in r.readlines():
        if ">" in line:
            key = line[1:].strip()
            dictionary[key] = ""
        else:
            dictionary[key] += line

print(dictionary)
于 2012-12-25T10:49:56.257 に答える
1

を含む行の値を取得したら、'>'その行を変数に保存します。が含まれていない行を読み取るときは'>'、以前に保存した変数をキーとする辞書エントリに追加します。

key = None
dict = {}
for line in file2.readlines():
    if ">" in line:
        key = line
        dict[key] = ''  # Initialise dictionary entry
    elif key is not None:
        dict[key] += line  # Append to dictionary entry
于 2012-12-25T10:46:31.600 に答える
0
d={}
key=''
file2 = open("ref.txt",'r')
for line in file2.readlines():
    if line.startswith('>'):
        key=line.strip()
        d[key]=[]
        continue
    d[key].append(line.strip())
file.close()

上記のコードはテストしていませんが、動作するはずです

于 2012-12-25T10:48:55.347 に答える