0

.txtファイルがあるとします。このファイルには、単語と数字が交互に並んでいます。

Mary
156
Sue
160
Jenn
154

これらの交互の行を('Mary':156)のような辞書に入れたいと思います。私の最初の考えは、%演算子でforループを使用することでしたが、それでも実際の実装に固執しています。テキストファイルの行にインデックスを付けることはできますか?これまでの私の考えは次のとおりです。

for i in range(len(text)):
    if i%2 == 0
4

3 に答える 3

9

Edit2:それをさらに簡単に行うことができます:

with open("data.txt") as inf:
    data = {name.strip():int(num) for name,num in zip(inf, inf))

戻り値

{'Mary': 156, 'Sue': 160, 'Jenn': 154}

Edit3 :(コメントへの応答):

"Mary,Jade,Jenn\n".split(',', 1)

戻り値

["Mary", "Jade,Jenn\n"]

したがって、最初のカンマまでの文字列のみが必要な場合は、次のことができます。

name = in_string.split(',', 1)[0]    # => "Mary"
于 2012-06-01T21:19:34.457 に答える
0

あなたはこのようにそれを行うことができます

with open("data.txt") as data:
    for line in data:
        name = line.strip()
        number = data.readline()
        print name
        print number
于 2012-06-01T21:18:47.183 に答える
0

どうですか?

for i in range(0, len(text), 2)

しかし、簡単にロードできるので、実際には必要ありません。

s = """Mary
156
Sue
160
Jenn
154"""

lines = s.splitlines()
lines = zip(*[iter(lines)]*2)
d = dict(lines)

print d
于 2012-06-01T21:19:00.587 に答える