感觉被这个程序绕晕了,它的解答思路应该是什么呢?

原题

img

答案

img

搞不明白它的x y是在怎么变化的?答案也看不太懂 请求指点🙏🏻


import random  # 导入 random 模块

x = [75, 64, 7, 86, 52, 6, 11, 31, 59, 64]  # 定义一个包含 10 个整数的列表
print(x)  # 输出未排序前的列表 x

y = x[0:5]  # 切片操作,将列表 x 的前 5 个元素赋值给列表 y   此时y = [75, 64, 7, 86, 52]
y.sort()   # 对列表 y 进行升序排序,此时 y = [7, 52, 64, 75, 86]

x[0:10] = y  # 将排序后的列表 y 赋值给列表 x 的前 10 个元素, 此时x = [7, 52, 64, 75, 86]

y = x[5:10]  # 切片操作,将列表 x 的第 6 到第 10 个元素赋值给列表 y 此时 y = []
y.sort(reverse=True)  # 对列表 y 进行降序排序  y= []
x[10:20] = y  # 将排序后的列表 y 赋值给列表 x 的第 11 到第 20 个元素 x = [7, 52, 64, 75, 86]

print(x)  # 输出排序后的列表 x

从 y = x[5:10] 开始往后都是在无用功了,因为这时 x 就已经是结果那样,只有5个数,切片得到的是空列表。

img

y=x[0:5]这一步,就注定y只有5个值,相应的后续的x也只会有5个值

所以从y=x[5:10]开始,y就没有值了,5~10的切片,取到的是空值
所以x就是一开始的x列表的前五个值,并且排了个序

x=[75,64,7,86,52,6,11,31,59,64]
y=x[0:5]
print('y',y)
y.sort()
print('y.sort():',y)
x[0:10]=y
y=x[5:10]
print(y)
y.sort(reverse=True)
print(y)
x[10:20]=y
print(x)
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/695683
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:双对数坐标系与双y轴坐标系下绘图
  • 除此之外, 这篇博客: 21句话入门机器学习中的 12. 每个二维的数据集对应着一个一维的标签集,用于标识每个样本的所属类别或属性值。通常数据集用大写字母X表示,标签集用小写字母y表示。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •        下面的代码从数据集子模块datasets中提取了鸢尾花数据集——这是用来演示分类模型的最常用的数据集。鸢尾花数据集X共有150个样本,每个样本有4个特征列,分别是花萼的长度和宽度、花瓣的长度和宽度。这些样本共有3种类型,分别用整数0、1、2表示,所有样本的类型标签组成标签集y,这是一个一维数组。

    >>> from sklearn.datasets import load_iris
    >>> X, y = load_iris(return_X_y=True)
    >>> X.shape # 数据集X有150个样本,4个特征列
    (150, 4)
    >>> y.shape # 标签集y的每一个标签和数据集X的每一个样本一一对应
    (150,)
    >>> X[0], y[0]
    (array([5.1, 3.5, 1.4, 0.2]), 0)
    

           加载数据时,如果指定return_X_y参数为False(默认值),则可以查看标签的名字。

    >>> iris = load_iris()
    >>> iris.target_names # 查看标签的名字
    array(['setosa', 'versicolor', 'virginica'], dtype='<U10')
    >>> X = iris.data
    >>> y = iris.target