Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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_String - Fatal编程技术网

Python:操作字符串的有效方法?

Python:操作字符串的有效方法?,python,string,Python,String,假设你有弦 s1 = "('element1', 'element2', 'element3')" s1 = "('element1', 'element2', 'element3')" s2 = "(1A, 2A, 3A)" 及 有没有一种简单的方法可以用来转换 s1 to "(element1, element2, element3)" 及 对于s1,每个引号都需要消失,而对于s2,每个A都应该消失。做这件事最直接的方法是什么 编辑->引号内的所有内容都是整个字符串的一

假设你有弦

    s1 = "('element1', 'element2', 'element3')"
s1 = "('element1', 'element2', 'element3')"
s2 = "(1A, 2A, 3A)"

有没有一种简单的方法可以用来转换

    s1 to "(element1, element2, element3)"

对于s1,每个引号都需要消失,而对于s2,每个A都应该消失。做这件事最直接的方法是什么


编辑->引号内的所有内容都是整个字符串的一部分。。。没有元组,也没有任何变量。谢谢

我假设
s1
s2
应该是字符串

    s1 = "('element1', 'element2', 'element3')"
s1 = "('element1', 'element2', 'element3')"
s2 = "(1A, 2A, 3A)"
要从
s1
中删除所有单引号,可以使用

s1 = s1.replace("'", "")
要删除
s2
中出现的字母
A
,请使用

s2 = s2.replace("A", "")

请注意,字符串不能就地修改(它们是不可变的)str.replace()将返回一个新字符串。

我是否遗漏了什么

>>> s1 = "('element1', 'element2', 'element3')"
>>> s2 = "(1A, 2A, 3A)"
>>> print s1.replace("'", "")
(element1, element2, element3)
>>> print s2.replace("A", "")
(1, 2, 3)

您不希望在字符串区域中执行这些操作。您真正想要的是将元素解析成一个字符串列表,将它们作为一个列表进行操作,然后将它们重新连接成一个字符串

您可能会发现以下函数很有用。当然,如果攻击者可以控制字符串(例如,可以在任何地方插入


s1
应该是字符串
“('element1','element2','element3')”
,还是三个字符串的元组?对不起,是的,它们是字符串而不是元组!在这些例子中没有变量。。。。。它们实际上只是字符串的一部分……您的规范不完整。请澄清你想做什么:输入是什么,预期输出是什么,最好是它们的类型。另外,我不确定您是在为
s1
s2
寻找一种通用方法还是不同的方法。可能是重复的。。。也适用于
A
。您想要哪一种,最有效的方式,还是最直接的方式,因为它们通常不是同一件事。:)“…元素到字符串列表中”,这不应该读“…元素到字符串列表中”?谢谢,我不明白所有的困惑是什么,不幸的是。。。但非常感谢您的帮助:)
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))
>>> 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)'