我有一个以下格式的字符串输入:(x,y)其中x和y是双精度。
例如:(1,2.556)可以是矢量。
在这种情况下,我希望以最简单的方式将其拆分为x,y值,1和2.556。
你会建议什么?
答案 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]