python拆分矢量格式字符串

时间:2015-07-31 16:56:09

标签: python string

我有一个以下格式的字符串输入:(x,y)其中x和y是双精度。

例如:(1,2.556)可以是矢量。

在这种情况下,我希望以最简单的方式将其拆分为x,y值,1和2.556。

你会建议什么?

5 个答案:

答案 0 :(得分:4)

你可以使用这样的代码:

import ast
text = '(1,2.556)'
vector = ast.literal_eval(text)
print(vector)

literal_eval函数没有与eval相关联的安全风险,并且在此特定情况下也能正常工作。

答案 1 :(得分:1)

eval有效:

>>> s = "(1.2,3.40)"
>>> eval(s)
(1.2, 3.4)
>>> x,y = eval(s)
>>> x
1.2
>>> y
3.4

eval存在潜在的安全风险,但如果您相信自己正在处理该形式的字符串,那么这就足够了。

答案 2 :(得分:1)

评估答案很好。但是如果你确定字符串的格式 - 总是以括号开头和结尾,字符串中没有空格等,那么你可以相当有效地做到这一点:

<head><style type="text/css"></style></head>
  <body>
    <pre style="word-wrap: break-word; white-space: pre-wrap;">{
      "salePrice": 299.99
    }</pre>
  </body>

答案 3 :(得分:0)

删除第一个和最后一个<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:local="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="@color/grey" local:theme="@style/CustomTheme" local:popupTheme="@style/ThemeOverlay.AppCompat.Light" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Toolbar Title" android:id="@+id/toolbar_title" android:textColor="#010101" /> <!--android:layout_gravity="center"--> </android.support.v7.widget.Toolbar> <style name="CustomTheme" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="android:textColorPrimary">#COLOR_CODE_FOR_YOUR_TEXT</item> <item name="android:textColorSecondary">#COLOR_CODE_FOR_YOUR_TOOLBAR_ICON</item> </style> ,然后根据逗号进行拆分。

(

)

答案 4 :(得分:0)

如果你确定他们会以这种方式传递,请尝试:

>>> s = '(1,2.556)'
>>> [float(i) for i in s[1:-1].split(',')]
[1.0, 2.556]