网站首页 > 文章中心 > 其它

函数怎么赋值python_Python中常用的数学函数和数组函数

作者:小编 更新时间:2023-09-13 10:54:24 浏览量:375人看过

python赋值语句规则

规则:赋值语句必须是在赋值号(=)的左边是变量或对象的某个属性,不能是表达式;

①.、赋值号(=)的右边是变量值、对象属性的值、表达式的值、计算式的值、函数值等等,不能是变量或对象.

python随机数如何赋值给变量

python随机数赋值给变量的方法:

①.、使用"import random"语句导入"random"包

完整代码如下:

执行结果如下:

关于Python中sort函数赋值的问题

Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明:

第一段:基本形式

列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的.

如果需要一个排序好的副本,同时保持原有列表不变,怎么实现呢

注意:y = x[:] 通过分片操作将列表x的元素全部拷贝给y,如果简单的把x赋值给y:y = x,y和x还是指向同一个列表,并没有产生新的副本.

另一种获取已排序的列表副本的方法是使用sorted函数:

sorted返回一个有序的副本,并且类型总是列表,如下:

print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']

第二段:自定义比较函数

可以定义自己的比较函数,然后通过参数传递给sort方法:

第三段:可选参数

sort方法还有两个可选参数:key和reverse

①.、key在使用时必须提供一个排序过程总调用的函数:

x = ['mmm', 'mm', 'mm', 'm' ]x.sort(key = len)print x # ['m', 'mm', 'mm', 'mmm']

Python的赋值与复制

对于Python的初学者,在对象的使用过程中,由于对变量的赋值和对象的复制中的概念模糊,导致程序出错.

例如,下面的代码:

输出结果为:

a等于b?True

a等于c?True

a是b?True

a是c? False

可以看到,a,b, c所指向的对象的值都相同(a==b为True). a和b都是代表同一个对象(a is b为True).当我们通过变量b对该列表进行修改时,由于a也指向该列表,所以当打印a,b时,我们得到相同的值. 而a和c则是代表不同的对象(a is c为False),所以修改b所指向得列表不会改变c梭子乡的列表的值.

在Python中,所有的变量都代表了对象,即便是简单的数字类型(int, float, bool),也是以对象的形式存在的.我们看下面的代码:

输出结果是:

a==b为True

a is b为True

可见,a, b都是指向同一个对象.此时此刻呢,进行下面的操作,

a is b为False

与前面的列表不同,当我们对b做修改时,实际上是给b赋予了一个新生成的对象,对数值类型来说,所有的数值运算都会创建一个数值对象,并将这个对象指定给变量.所以呢,a与b指向了不同的对象,数值也不同.

再回过头来看列表对象,

我们知道,b是与a指向同一对象的变量,使用b对该对象进行修改,与使用a对该对象进行修改,效果是完全一样的.如果我们需要需要一个与a完全相同又与a相互独立的列表,那么就需要复制这个对象,也就是新建一个内容和源对象相同的对象.

对于列表来说,最简单的复制方法是通过下标索引的方式创建新的列表:

对于各种数据类型通用的对象拷贝复制,我们可以使用python内建的copy模块.

对于复杂对象(如嵌套列表)的复制,则需要注意区分浅拷贝和深拷贝.我们来看下面的代码:

得到的结果是:

a[0] is b[0]为 True

a[0] is c[0]为 False

a[1] is b[1]为False

从上面的代码我们可以看到,copy函数为浅拷贝,只拷贝了对象的外层,而对象内部所包含的对象仍然指向原有的对象.而deepcopy则为深拷贝,对象内部的对象也进行了复制.

以上我们对变量的赋值和对象的复制做了更加深入的分析.在具体的使用中,我们需要根据具体来决定使用赋值、浅拷贝、深拷贝.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章