1

ここスタックオーバーフローに関するこの質問への答えを調査することで、私は多くの新しいことを学びましたが、これまでのところ取引を成立させることができませんでした。

私のPythonプロセスは、stdinを介して1行の入力を受け取ります。

[{'name':'ry', 'age':28}, {'name':'bo', 'age':11}, {'name':'ed', 'age':99}]

...そして、この行をリストオブジェクトに直接保存して、繰り返し処理できるようにしたいと思います。たとえば、

for i in list:
    print i['age'], i['name']

...しかし、使用するsys.stdin()fileinputモジュールを使用するかにかかわらず、これを機能させることはできません。たとえば、明示的にリストを作成した場合でもx = list(stdin.readline())、テキストを希望どおりに解析するのではなく、各文字をリスト内の個別のアイテムにすることになります。とにかく..検索に戻ります。(読んでくれてありがとう。)

4

1 に答える 1

6

悪い方法はを使用することinputです。ただし、これは安全ではなく、Python 3では関数が削除されています(Python3で呼び出される関数はPython2の関数とinput同じですraw_input)。

より良い方法はを使用することast.literal_evalです。

import ast
x = ast.literal_eval(stdin.readline())

オンラインで動作することを確認してください:ideone

于 2012-07-14T23:23:12.493 に答える