替换输入字符串中除第一个字符外的其他字符的实例。

由于python中的字符串是不可改变的,我尝试了这个变通方法。我首先将字符串分解成它的字符组件, 把它们放在一个列表里. 然后,我在这个列表中循环,将我想修改的字符的第二次出现替换到目标字符中,最后部分当然是根据新的列表重新构建字符串。

def modify():
  space = " "
  # This is the input part
  varstr = input("Insert a string to modify:\n> ")
  if space in varstr:
     print("Please insert a string without space")
     modify()
  varchar = input("Insert a SINGLE character to modify in $:\n> ")
  if len(varstr) > 1:
    print("Please insert a single character, without spaces")
  counter = 0
  liststr = []
  stringout = ""
  #Creating the list composed by the characters of the string
  for i in varstr:                  
      liststr.append(i)
  #Looping through the string and substituting the character from its second occurence
  for j in range(len(liststr)):
      if counter >= 1 and liststr[j] == varchar:
      liststr[j] = "$"
  elif counter == 0 and liststr[j] == varchar:
      counter += 1
  for k in liststr:
      stringout += k 
  return stringout 

我的问题是:这段代码能不能做得更整洁一些?

编辑:样本输入可以是 “Google “和字符 “o”。那么样本输出将是

Go$gle

解决方案:

你可以这样做。

char = "a"
stri = "santaclaus"
char.join("$".join(s.split(char)) for s in stri.split(char, 1))
# 'sant$cl$us'

这在第一条就被拆开了 char 的发生,并在””之后将代币连接起来。char.split婷婷和 '$'.joining “他们。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

在SQL developer(v4.1)中,关闭脚本输出窗口的快捷键是什么?

2022-4-21 17:01:48

解决方案

从局域网连接到互联网域名

2022-4-21 18:00:10

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索