在python中以元组表示的字符串中拆分字符时,如何删除单个引号
字符串表示如下所示:在python中以元组表示的字符串中拆分字符时,如何删除单个引号,python,Python,字符串表示如下所示: str = '1,1' p = ('1,1',) (1,1) 将其更改为元组,如下所示: str = '1,1' p = ('1,1',) (1,1) 我需要一些类似于下面给出的表示: str = '1,1' p = ('1,1',) (1,1) 你是说像这样的事吗 s = '1,1' p = tuple( int(x) for x in s.split(',') ) 这会导致元组元素是整数,这似乎是您想要的 如果您希望元组元素是字符串,那么类似这
str = '1,1'
p = ('1,1',)
(1,1)
将其更改为元组,如下所示:
str = '1,1'
p = ('1,1',)
(1,1)
我需要一些类似于下面给出的表示:
str = '1,1'
p = ('1,1',)
(1,1)
你是说像这样的事吗
s = '1,1'
p = tuple( int(x) for x in s.split(',') )
这会导致元组元素是整数,这似乎是您想要的
如果您希望元组元素是字符串,那么类似这样的操作应该可以:
p = tuple( s.split(',') )
如果字符串中实际包含引号字符,则可以将其删除。替换(“”)..也可以执行以下操作:
import ast
s = '1,1'
p = ast.literal_eval(s)
编辑:根据mgilson的见解使其安全。我们可以使用正则表达式:
import re
s = '1,1'
int_tuple = tuple(int(s) for s in re.findall('\\d+', s))
Output: (1, 1)
我被标题搞糊涂了-这与“删除一条引文”有什么对应关系?@mutzmatron——我也有点困惑——这就是为什么我在回答中采用了猎枪方法(回答3个问题,希望其中一个是正确的)。@mgilson:hahaha-不错!我也同意,我也不喜欢
eval
方法-eval
应尽可能避免!另一个注释——如果在代码中使用str
作为变量名,则应将其更改为其他名称,以避免“隐藏”内置str
函数(非常有用)。eval
将对任何表达式求值(例如s=“\u import\u('os')。system('rm-rf~')”
)如果某个小丑以某种方式将s
变成恶意字符串,这可能会导致非常糟糕的一天ast.literal\u eval
将仅计算文字和涉及文字的表达式。(例如字符串、列表、元组、整数、浮点、dicts…)