AI刷题经历与收获1|豆包MarsCode AI刷题

79 阅读3分钟

作为一个python初学者刷题过程中常常会有不熟悉的知识,而使用AI刷题极大了提高了我的学习效率与刷题效率,做到练中学。以下是做题过程中利用AI帮助,进行的知识总结

def solution(a: int, b: int) -> int:
    numlist = []
    while a > 0:
        numlist.append(a%10)
        a //= 10
    length = len(numlist)
    finished = False
    for i in range(length):
        if b >= numlist[i]:
            numlist.insert(i,b)
            finished = True
            break
    if(not finished):
        numlist.append(b)
    result = 0
    //将列表中的数字拼接起来
    for digit in numlist:
        result = result * 10 + digit
    return result

if __name__ == '__main__':
    print(solution(76543, 4) == 765443)
    print(solution(1, 0) == 10)
    print(solution(44, 5) == 544)
    print(solution(666, 6) == 6666)
  • 列表的插入

    1. insert()方法

      • 基本语法list.insert(index, element)。其中index是要插入元素的索引位置,element是要插入的元素。

      • 示例

        • 假设我们有一个列表my_list = [1, 3, 4],如果我们想在索引为 1(也就是第二个元素)的位置插入数字 2,可以这样做:
      my_list = [1, 3, 4]
      my_list.insert(1, 2)
      print(my_list)
      
    • 输出结果为[1, 2, 3, 4]。这里需要注意的是,insert()方法会改变原始列表。如果index等于列表的长度,那么元素会被添加到列表的末尾,就相当于append()操作。例如:

      my_list = [1, 2, 3]
      my_list.insert(len(my_list), 4)
      print(my_list)
      
    • 输出为[1, 2, 3, 4]

    • 索引边界情况

      • 如果index小于 0,元素会被插入到列表的开头。例如:
      my_list = [1, 2, 3]
      my_list.insert(-1, 0)
      print(my_list)
      
    • 输出为[1, 2, 0, 3]。这是因为当index为 - 1 时,实际上是在倒数第二个位置插入元素。

    • 如果index超出了列表长度(大于等于列表长度),元素会被插入到列表的末尾,如前面提到的示例。

    1. 使用切片拼接实现插入效果

      • 基本原理:通过将列表分成两部分,在中间插入元素,然后再拼接起来。

      • 示例

        • 还是以my_list = [1, 3, 4]为例,要在索引为 1 的位置插入 2,可以这样做:
      my_list = [1, 3, 4]
      new_list = my_list[:1] + [2] + my_list[1:]
      print(new_list)
      
    • 输出同样是[1, 2, 3, 4]。这种方法在某些情况下可能更直观,特别是在不希望直接修改原始列表,而是想创建一个新的列表时很有用。不过,对于大型列表来说,切片操作可能会消耗较多的内存和时间,因为它会创建新的列表对象来存储切片后的内容。

    1. 与其他数据结构插入操作的对比

      • 与元组相比,元组是不可变的数据结构,没有insert()方法。如果要在类似元组的数据结构中插入元素,需要先将元组转换为列表,插入元素后再转换回元组。例如:

        • 假设有一个元组my_tuple=(1, 3, 4),要插入数字 2,可以这样做:
      my_tuple = (1, 3, 4)
      my_list = list(my_tuple)
      my_list.insert(1, 2)
      new_tuple = tuple(my_list)
      print(new_tuple)
      
    • 输出为(1, 2, 3, 4)

    • 与集合相比,集合是无序的数据结构,没有索引的概念,所以不能像列表一样在指定索引位置插入元素。集合的add()方法用于添加元素,但元素的位置是不确定的。例如:

      • 有一个集合my_set = {1, 3, 4},使用add()方法添加元素 2:
      my_set = {1, 3, 4}
      my_set.add(2)
      print(my_set)
      
    • 输出可能是{1, 2, 3, 4}(集合是无序的,每次输出的元素顺序可能不同)。