0

例えば ​​。

s='[-97.173125220360362, -97.173125220360362]'
v=eval(s)

実際には v =[-97.17312522036036, -97.17312522036036]、最後の 2 を失いました。文字列と同じ値を保持するにはどうすればよいですか

4

3 に答える 3

1

使用ast.literal_eval:

import ast
s = '[-97.173125220360362, -97.173125220360362]'
print ast.literal_eval(s)

ドキュメントに記載されているように、使用ast.literal_evalはより安全です。eval

これにより、フロートのリストが表示されます。

于 2013-10-28T09:56:12.417 に答える
1

リストを取得するには、代わりにliteral_evalを使用してください。

from ast import literal_eval

s= '[-97.173125220360362, -97.173125220360362]'
items = literal_eval(s)
# [-97.17312522036036, -97.17312522036036]

次に、適切にフォーマットして表示します。

as_strings = [format(el, '.17g') for el in items]
# ['-97.173125220360362', '-97.173125220360362']
于 2013-10-28T09:57:26.883 に答える