我最近正在做一些Python 运动,如果有人能帮忙的话,我想出了这个练习:

删除S中术语的每两次出现(即第二次、第四次、第六次等). 上面的代码不起作用,我正在try 打印aabcdaxyaa112

def delete_occurence(s, term):
    s = [s[i:i + 2] for i in range(0, len(s), 2)]
    s_length = len(s)
 
    for item in range(1, s_length):
        if (s[item] == term) and (item % 2 == 0):
            s.remove(s[item])
    print(''.join(s))
            

delete_occurence("aabcdaaaxyaa11aa2", "aa")

推荐答案

您的代码无法运行的原因有很多:

  • remove只删除字符串的第一个匹配项
  • 一旦删除了某项内容,索引就会移位

我的方法是根据术语拆分字符串,然后重新创建列表元素,两次中只插入一个术语.并处理最后一个元素的角大小写.

def delete_occurence(s, term):
    # split string, get rid of "term" strings
    toks = s.split(term)
    rval = []
    # loop on the split list of strings
    for i,t in enumerate(toks):
        # add string
        rval.append(t)
        if i%2==0 and i!=len(toks)-1:
            # add term only if not last item and if i is even
            rval.append(term)
    # recreate the string from the list
    return "".join(rval)

# prints aabcdaxyaa112
print(delete_occurence("aabcdaaaxyaa11aa2", "aa"))

Python-3.x相关问答推荐

Pandas :从元组字典创建数据帧

pandas查找另一列中是否存在ID

如何从选定的html内容中获取所需的文本

PythonPandas READ_EXCEL空数据帧

查找值始终为零的行 pandas

在python内的powershell中转义$_

从另一个云函数调用带有仅允许内部流量标志的云函数时出现问题

Python 3 - 给定未知数量的类别动态地将字典嵌套到列表中

XPATH:使用 .find_elements_by_xpath 为未知数量的 xpath 输入值

在字符串中查找正则表达式的所有模式

保存 StandardScaler() 模型以用于新数据集

Python 3.5 中编码 utf-8 和 utf8 的区别

判断对 python 3 支持的要求

发送Electron邮件时的 MIMEText UTF-8 编码问题

Python 3 与 Python 2 映射行为

Tensorflow:ImportError:libcudnn.so.7:无法打开共享对象文件:没有这样的文件或目录

带百分号的 Python 字符串格式

创建集合的 Python 性能比较 - set() 与 {} 文字

谁能给我一个 Python 3 中标准输入和标准输出的快速教程?

Python3 函数中没有标识符的单个 * 是什么意思?