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

时间:2015-05-08 12:00:08

标签: python string tuples eval

我有一个字符串从"('mono')"这样的软件返回,我需要将字符串转换为元组。

我正在考虑使用ast.literal_eval("('mono')"),但它说的是格式错误的字符串。

5 个答案:

答案 0 :(得分:3)

由于您需要元组,因此在某些情况下您必须预期包含多个元素的列表。不幸的是,除了琐碎的input = pow(2,log2(fabs(input))-50) //use 20 instead of 50 for float numbers! NSNumber *result = @(input); 之外,你没有给出例子,所以我们必须猜测。这是我的猜测:

dealerships
    .Include( d => d.parts)
    .Include( d => d.parts.suppliers)
    .Where(d => d.parts.All(p => p.price < 100.00) && d.parts.suppliers.All(s => s.country == "brazil"))

如果您的所有数据都是这样,请通过拆分字符串(减去周围的parens)将其转换为列表,然后调用元组构造函数。即使在单元素的情况下也可以工作:

(mono)

或者只需一步:"(mono)" "(two,elements)" "(even,more,elements)" 。 如果您的数据不是看起来像我的示例,请修改您的问题以提供更多详细信息。

答案 1 :(得分:1)

如何使用正则表达式?

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')

答案 2 :(得分:0)

尝试这个

a = ('mono')
print tuple(a)      # <-- you create a tuple from a sequence 
                    #(which is a string)
print tuple([a])    # <-- you create a tuple from a sequence 
                    #(which is a list containing a string)
print tuple(list(a))# <-- you create a tuple from a sequence 
                    #     (which you create from a string)
print (a,)# <-- you create a tuple containing the string
print (a)

输出:

('m', 'o', 'n', 'o')
('mono',)
('m', 'o', 'n', 'o')
('mono',)
mono

答案 3 :(得分:0)

我假设所需的输出是一个带有单个字符串的元组:(&#39; mono&#39;,)

一个元组的元组在表单​​(tup,)中有一个尾随逗号

a = '(mono)'
a = a[1:-1] # 'mono': note that the parenthesis are removed removed 
            # if they are inside the quotes they are treated as part of the string!
b = tuple([a]) 
b
> ('mono',)
# the final line converts the string to a list of length one, and then the list to a tuple

答案 4 :(得分:0)

将字符串转换为元组?只需应用tuple

>>> tuple('(mono)')
('(', 'm', 'o', 'n', 'o', ')')

现在它是一个元组。