Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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,我目前的任务是用“S^U^p^E^R m^A^N”替换“超级男人” 我试过打印(“超人”。替换(“,“^”),但最终结果是^S^U^p^E^R^^M^A^N^ 如何修复此问题?在将字符串“SUPER MAN”传递给replace()之前,您是否尝试过修剪该字符串?然后,您可以始终使用StringBuilder(假设您使用的是Java),然后使用DeleteCharAt()方法手动删除额外的“^”。您希望同时使用该方法 首先将

我目前的任务是用
“S^U^p^E^R m^A^N”
替换
“超级男人”

我试过打印(“超人”。替换(“,“^”),但最终结果是
^S^U^p^E^R^^M^A^N^


如何修复此问题?

在将字符串“SUPER MAN”传递给replace()之前,您是否尝试过修剪该字符串?然后,您可以始终使用StringBuilder(假设您使用的是Java),然后使用DeleteCharAt()方法手动删除额外的“^”。

您希望同时使用该方法

首先
按空格分割,以获得:

words = "SUPER MAN".split()
["SUPER", "MAN"]
然后,对于每个条目,使用
join
“^”
分隔每个字符:

new_words = map(lambda x: "^".join(x), words)
["S^U^P^E^R", "M^A^N"]
然后使用
join
将其转换回一个由空格分隔的字符串,结果代码为:

words = "SUPER MAN".split()
new_words = map(lambda x: "^".join(x), words)
print " ".join(new_words)
输出:
S^U^p^E^R M^A^N

代码正在执行的操作:

首先,请注意,传递到
replace
中的第一个参数不是一个空格,这可能是您想要的,而是表达式
,这是一种进行字符串连接的隐式方法

因此,
“SUPER MAN”.replace(“,”^”)
变成了
“SUPER MAN”.replace(“,”^”)
,它将
的每一次出现都替换为
“^”

这样一个操作的结果一开始似乎有点定义不清,但在Python中,因为您可以认为字符串
s
等于
“”+“”。join(s)+
,用
“^”
替换
的每一次出现将产生您看到的结果:每个字母和
“^”之间的
“^”
在末端

作为第一个参数传递给
replace
不起作用,因为它会将空格(特别是中间的空格)替换为
“^”
,因此您会得到
“SUPER^MAN”


有关其工作原理的详细信息:

使用sting操作,您可以使用
.split()
将其拆分为两个单词,然后使用
.join()
将其与特殊字符连接。为了避免使用“魔术字符串”,可以为特殊字符指定一个变量

hero = "SUPER MAN"
word = hero.split()
special_char = "^"
print(special_char.join(word[0])
      + " "
      + special_char.join(word[1]))
有两种方式可以显示输出
S^U^p^E^R M^A^N

方法1:使用连接每个具有特殊字符的单词

hero = "SUPER MAN"
word = hero.split()
special_char = "^"
print(special_char.join(word[0])
      + " "
      + special_char.join(word[1]))
方法2:分别为每个单词分配变量,然后使用特殊字符.join()

word_1 = special_char.join(word[0])
word_2 = special_char.join(word[1])

print(word_1, word_2)

谢谢,成功了。我还没有对lambda函数的使用进行足够的研究。他使用的是Python而不是Java。第二,他的绳子已经剪短了。