我是Python的新手,但想弄清楚如何取一个字符串并交换一对字符。我们说我们有字符串 ' HELLO__WORLD'并希望用__切换HELLO中的HE。所以字符串现在看起来像' __ LLOHEWORLD'怎么可能这样呢?它与.pop和.append有什么关系吗?或者,如果,elif,其他函数可以使用?也许首先,需要.index来查找用户指定需要交换的字符吗?
老实说,我真的不知道从哪里开始。
答案 0 :(得分:1)
.pop()
和.append()
是list
方法。
阅读清单和数据结构https://docs.python.org/2/tutorial/datastructures.html
您可以使用replace
例如。
hello = 'HELLO WORLD'
new_hello = hello.replace('HE', '_')
答案 1 :(得分:1)
如其他答案所述,str.replace
绝对是您想要使用的:
my_string = "HELLO__WORLD"
replaced = my_string.replace("HE","__")
print(replaced) #shows __LLO__WORLD
虽然如果"HE"
出现在字符串的其他地方并且不应该被替换,这可能还不够:
my_string = "HE SAID HELLO_WORLD"
replaced = my_string.replace("HE","__")
print(replaced) #shows __ SAID __LLO_WORLD
在这种情况下,您需要指定要替换的整个部分:
my_string = "HE SAID HELLO_WORLD"
replaced = my_string.replace("HELLO_WORLD","__LLO__WORLD")
print(replaced) #shows HE SAID __LLO_WORLD
答案 2 :(得分:0)
查看replace字符串方法:
s = 'HELLO__WORLD'
s = s.replace('HE', '__')
答案 3 :(得分:0)
如果您想要交换子串的索引,可以将字符串转换为list,与slice交换,然后将其转回字符串。
s = "HELLO__WORLD"
# "HE" is at [0:2], "__" is at [5:7]
s = list(s)
s[0:2], s[5:7] = s[5:7], s[0:2]
s = "".join(s)
print(s) # prints __LLOHEWORLD
要查找子字符串的索引,可以使用.find
:
s = "HELLO__WORLD"
s.find("__") #returns 5