Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将字符串转换为元组_Python - Fatal编程技术网

在python中将字符串转换为元组

在python中将字符串转换为元组,python,Python,这个问题很简单,但给了我一些麻烦: 我有 "('A', 'Open')" # type = str 并希望: ('A','Open') # type = tuple 我尝试过使用.split(),只是将整个内容转换为tuple(str),但没有成功 有两种方法可以实现这一点,都将字符串解析为Python代码 看起来更容易的选择是使用 更复杂但更好的选择是使用 一切都已经说过,为什么后者几乎总是你真正想要的。请注意,即使是eval的官方文档也指出应该使用ast.literal\u eval

这个问题很简单,但给了我一些麻烦:

我有

 "('A', 'Open')" # type = str
并希望:

 ('A','Open') # type = tuple

我尝试过使用.split(),只是将整个内容转换为tuple(str),但没有成功

有两种方法可以实现这一点,都将字符串解析为Python代码

看起来更容易的选择是使用

更复杂但更好的选择是使用


一切都已经说过,为什么后者几乎总是你真正想要的。请注意,即使是
eval
的官方文档也指出应该使用
ast.literal\u eval

有两种方法可以实现这一点,都将字符串解析为Python代码

看起来更容易的选择是使用

更复杂但更好的选择是使用


一切都已经说过,为什么后者几乎总是你真正想要的。请注意,即使是
eval
的官方文档也指出,您应该使用
ast.literal\u eval

这如何

import re

m_s = "('A', 'Open')"
patt = r"\w+"
print(tuple(re.findall(patt, m_s)))
这个怎么样

import re

m_s = "('A', 'Open')"
patt = r"\w+"
print(tuple(re.findall(patt, m_s)))

使用正则表达式怎么样

In [1686]: x
Out[1686]: '(mono)'

In [1687]: tuple(re.findall(r'[\w]+', x))
Out[1687]: ('mono',)

In [1688]: x = '(mono), (tono), (us)'

In [1689]: tuple(re.findall(r'[\w]+', x))
Out[1689]: ('mono', 'tono', 'us')

In [1690]: x = '(mono, tonous)'

In [1691]: tuple(re.findall(r'[\w]+', x))
Out[1691]: ('mono', 'tonous')

使用正则表达式怎么样

In [1686]: x
Out[1686]: '(mono)'

In [1687]: tuple(re.findall(r'[\w]+', x))
Out[1687]: ('mono',)

In [1688]: x = '(mono), (tono), (us)'

In [1689]: tuple(re.findall(r'[\w]+', x))
Out[1689]: ('mono', 'tono', 'us')

In [1690]: x = '(mono, tonous)'

In [1691]: tuple(re.findall(r'[\w]+', x))
Out[1691]: ('mono', 'tonous')
最短的是做什么

eval("('A','Open')") #will return type as tuple
eval()以python表达式的形式计算并执行字符串

eval("('A','Open')") #will return type as tuple

eval()以python表达式的形式计算并执行字符串

这个
“('A','Open')”
来自哪里?
导入ast;my\u tuple=ast.literal\u eval(my\u string)
@l3via内置的
eval()
本身就可以,不需要外部库。@meW谢谢。。。我不知道这件事。。需要一段时间read@meW,不要建议使用
eval
,这在没有明确警告的情况下具有潜在危险。此
“('A','Open')”
来自何处?
导入ast;my\u tuple=ast.literal\u eval(my\u string)
@l3via内置的
eval()
本身就可以,不需要外部库。@meW谢谢。。。我不知道这件事。。需要一段时间read@meW,不要建议使用
eval
,这在没有明确警告的情况下可能会有危险。
ast.literal\u eval
eval
稍微复杂一点,怎么回事?@vishes\u shell:您需要添加导入(尽管是从标准库中)。我没说要复杂得多。。。它在计算字符串时可能会稍微慢一点,因为它首先执行一些检查。
ast.literal\u eval
eval
稍微复杂一点,这是怎么回事?@vishes\u shell:您需要添加一个导入(尽管是从标准库)。我没说要复杂得多。。。由于它首先执行一些检查,因此计算字符串的速度可能会稍慢一些。