python这个问题怎么解决,我想要对数组排好序后的列表切片,但它显示是错误当然

img

img


我想对数组排序后的列表切片后加入新列表里面,但它显示错误,这怎么解决

K=K.append[k]这样写是错误的,你本来就是对K这个数组进行对的操作,你这么写相当于把结果赋值给k,把前面的K=去掉,直接写K.append[k]

append是列表的方法,没有返回值,所以不能用等号赋值。
把K=和V=去掉

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7633939
  • 你也可以参考下这篇文章:Python3 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字
  • 除此之外, 这篇博客: 【排序方法总结 】希尔排序 快速排序 归并排序 堆排序等 Python实现中的 算法实现(归并过程:) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    1. 比较a[i]和a[j]的大小,若a[i]≤a[j],则将第一个有序表中的元素a[i]复制到r[k]中,并令i和k分别加上1;
    2. 否则将第二个有序表中的元素 a[j] 复制到r[k]中,并令j和k分别加上1,如此循环下去,直到其中一个有序表取完,然后再将另一个有序表中剩余的元素复制到 r 中, 从下标 k 到下标 t 的单元。
    3. 归并排序的算法我们通常用递归实现,先把待排序区间[s,t]以中点二分,接着把左边子区间排序,再把右边子区间排序,最后把左区间和右区间用一次归并操作合并成有序的区间[s,t]。
    def merge(left, right):
        i, j = 0, 0
        result = []
        while i < len(left) and j < len(right):
            if left[i] <= right[j]:
                result.append(left[i])
                i += 1
            else:
                result.append(right[j])
                j += 1
        result += left[i:]
        result += right[j:]
        return result
     
    def merge_sort(lists):
        # 归并排序
        if len(lists) <= 1:
            return lists
        num = len(lists) / 2
        left = merge_sort(lists[:num])
        right = merge_sort(lists[num:])
        return merge(left, right)

     

  • 您还可以看一下 莫明作老师的树莓派基础学习&树莓派项目实战演示&Python语言课程中的 树莓派安装系统后自动连网(不需网线 不需路由器)小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    参考资料中没有关于Python中对已排序数组切片并添加到新列表的问题解决方法,以下是我个人提供的解决方案:

    对于Python中已排序的数组进行切片并添加到新列表中,可以通过使用列表切片语法和列表的extend方法来实现。具体步骤如下:

    1.先定义一个已排序的数组:

    sorted_list = [1, 3, 6, 7, 9, 11, 15]

    2.对已排序的数组进行切片:

    sliced_list = sorted_list[2:5] # 取第3到第5个元素,结果为[6, 7, 9]

    3.新建一个空列表:

    new_list = []

    4.把切片结果添加到新列表中:

    new_list.extend(sliced_list)

    5.结果就是新的列表:

    print(new_list) # 输出[6, 7, 9]

    需要注意的是,在切片时不要越界,需要保证切片的起始和结束索引都在列表的范围内。此外,如果直接使用append方法,切片会作为一个整体添加到新列表中,而不是添加切片中的元素。因此,需要使用extend方法将切片中的元素逐个添加到新列表中。