我有一个字符串从"('mono')"
这样的软件返回,我需要将字符串转换为元组。
我正在考虑使用ast.literal_eval("('mono')")
,但它说的是格式错误的字符串。
答案 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', ')')
现在它是一个元组。