假设你有字符串
s1 = "('element1', 'element2', 'element3')"
和
s2 = "(1A, 2A, 3A)"
是否有一种可用于转换的简单技术
s1 to "(element1, element2, element3)"
和
s2 to "(1, 2, 3)"
对于s1,每个单引号都需要消失,对于s2,每个A应该消失。什么是最简单的方法,只有这个?
编辑 - >引号内的所有内容都是整个字符串的一部分......没有元组也没有任何变量。谢谢!
答案 0 :(得分:3)
我认为s1
和s2
应该是字符串
s1 = "('element1', 'element2', 'element3')"
s2 = "(1A, 2A, 3A)"
要从s1
删除所有单引号,您可以使用
s1 = s1.replace("'", "")
要从A
删除所有出现的字母s2
,请使用
s2 = s2.replace("A", "")
请注意,字符串无法就地修改(它们是不可变的) - str.replace()
将返回一个新字符串。
答案 1 :(得分:2)
我错过了什么吗?
>>> s1 = "('element1', 'element2', 'element3')"
>>> s2 = "(1A, 2A, 3A)"
>>> print s1.replace("'", "")
(element1, element2, element3)
>>> print s2.replace("A", "")
(1, 2, 3)
答案 2 :(得分:1)
你不想在字符串中进行这些操作。你真正想要的是将你的元素解析成一个字符串列表,将它们作为一个列表进行操作,并将它们连接回一个字符串。
您可能会发现以下功能很有用。当然,如果攻击者控制了字符串(例如可以在任何地方插入'
和,
),请注意安全漏洞。
def tuplestringToList(s):
"""
"(AAAAA, BBBBB , CCCCC)" -> ["AAAAA", "BBBBB", "CCCCC"]
"""
assert s.startswith('(')
assert s.endswith(')')
return [fragment.strip() for fragment in s[1:-1].split(',')]
def listToTuplestring(myList):
return '({})'.format(', '.join(myList))
答案 3 :(得分:0)
>>> s1 = "('element1', 'element2', 'element3')"
>>> result = ''.join([i for i in s1 if i != "'"])
>>> result
'(element1, element2, element3)'
>>> s2 = "(1A, 2A, 3A)"
>>> result = ''.join([i for i in s2 if i != "A"])
>>> result
'(1, 2, 3)'