![]() |
爱听歌的机器人 · Winform配合CefSharp集成Tin ...· 2 年前 · |
![]() |
着急的野马 · Swift RSA加解密 - 简书· 2 年前 · |
![]() |
文雅的牛肉面 · SM2国密算法/椭圆曲线密码学ECC之数学原 ...· 2 年前 · |
![]() |
逼格高的花卷 · 【C语言】多重选择switch的用法_几个变 ...· 2 年前 · |
有没有人能建议一个简单的方法来做这件事。我需要一条直线。
出现 故障
a = 'Quattro TT'
print tuple(a)
Works
a = ['Quattro TT']
print tuple(a)
因为我的输入是一个字符串,所以我尝试了下面的代码,将字符串转换为列表,这将再次将字符串拆分为字符。
出现 故障
a = 'Quattro TT'
print tuple(list(a))
预期输出:
('Quattro TT')
生成的输出:
('Q', 'u', 'a', 't', 't', 'r', 'o', ' ', 'T', 'T')
你可以只做
(a,)
。不需要使用函数。(请注意,逗号是必需的。)
本质上,
tuple(a)
意味着创建
a
内容的元组,而不仅仅是由
a
本身组成的元组。字符串的“内容”(当您迭代它时得到的内容)是它的字符,这就是它被拆分成字符的原因。
以防有人想知道如何创建一个元组,将字符串"Quattro“和"TT”的每一部分赋给列表的一个元素,它就像这样的
print tuple(a.split())
对元组进行子类化,其中一些子类实例可能需要是单字符串实例,这会抛出一些有趣的东西。
class Sequence( tuple ):
def __init__( self, *args ):
# initialisation...
self.instances = []
def __new__( cls, *args ):
for arg in args:
assert isinstance( arg, unicode ), '# arg %s not unicode' % ( arg, )
if len( args ) == 1:
seq = super( Sequence, cls ).__new__( cls, ( args[ 0 ], ) )
else:
seq = super( Sequence, cls ).__new__( cls, args )
print( '# END new Sequence len %d' % ( len( seq ), ))
return seq
注意,正如我从这个帖子中学到的,你必须把逗号放在
args[ 0 ]
后面。
打印行显示没有拆分单个字符串。
注意:子类的构造函数中的逗号现在是可选的:
Sequence( u'silly' )
或
Sequence( u'silly', )
我使用此函数将字符串转换为元组
import ast
def parse_tuple(string):
s = ast.literal_eval(str(string))
if type(s) == tuple:
return s
return
except:
return
用法
parse_tuple('("A","B","C",)') # Result: ('A', 'B', 'C')
在您的情况下,您需要
value = parse_tuple("('%s',)" % a)
这只涵盖了一个简单的案例:
a = ‘Quattro TT’
print tuple(a)
如果你只使用像‘,’这样的分隔符,那么它就可以工作。
我使用了来自
configparser
的字符串,如下所示:
list_users = (‘test1’, ‘test2’, ‘test3’)
and the i get from file
tmp = config_ob.get(section_name, option_name)
>>>”(‘test1’, ‘test2’, ‘test3’)”
在这种情况下,上述解决方案不起作用。但是,这是可行的:
def fot_tuple(self, some_str):
# (‘test1’, ‘test2’, ‘test3’)
some_str = some_str.replace(‘(‘, ”)
# ‘test1’, ‘test2’, ‘test3’)
some_str = some_str.replace(‘)’, ”)
# ‘test1’, ‘test2’, ‘test3’
some_str = some_str.replace(“‘, ‘”, ‘,’)
# ‘test1,test2,test3’
some_str = some_str.replace(“‘”, ‘,’)
# test1,test2,test3
# and now i could convert to tuple
return tuple(item for item in some_str.split(‘,’) if item.strip())
您可以使用以下解决方案:
s="jack"
tup=tuple(s.split(" "))
output=('jack')
请参见:
'Quattro TT'
是一个字符串。
因为string是一个字符列表,所以它与
['Q', 'u', 'a', 't', 't', 'r', 'o', ' ', 'T', 'T']
现在..。
['Quattro TT']
是在第一个位置有一个字符串的列表。
还有..。
a = 'Quattro TT'
list(a)
是将转换为列表的字符串 。
同样,因为string是一个字符列表,所以没有太大的变化。
另一个信息..。
tuple(something)
这会将一些东西转换成元组。
理解了所有这一切,我想你可以得出结论,没有什么是失败的。
您可以使用
eval()
>>> a = ['Quattro TT']
>>> eval(str(a))
['Quattro TT']
val_1=input("").strip(")(").split(",") #making a list from the string
if val_1[0].isdigit()==True: #checks if your contents are all integers
val_2 = []
for i in val_1:
val_2.append(int(i))
val_2 = tuple(val_2)
print(val_2)
else: # if the contents in your tuple are of string, tis case is applied
val_2=[]
for i in range(0,len(val_1)):
if i==0:
![]() |
着急的野马 · Swift RSA加解密 - 简书 2 年前 |