python基本数据类型内置方法 —1

python基本数据类型内置方法 —1,第1张

字符串的内置方法

小知识:①字符串的定义可以使用单引号、双引号、三引号,仅从定义层面来说,并无不同。变量名是由字母、数字、下划线组成的,若字符串不加引号,会被python认为是变量名。②字符串是有序、不可变类型。有序则字符串可遍历,不可变则字符串的任意 *** 作都不改变原字符串。

  1. 切片——[起始:终止:步长],当步长为负数时,起始索引应该大于终止索引。字符串取反[ : : -1]。字符串的切片 *** 作不会改变原字符串内容。


  1. strip(chars)——移除字符串左右两侧的符号,若不传入chars,则去除字符串左右两侧空格,字符串中间的符号并不会去除。lstrip与rstrip分别表示去除字符串左侧和右侧的符号。

  2. split(sep,maxsplit)——将字符串按照某种分隔符(sep)分割,得到一个列表,列表的元素是分割后的字符串。不传入参数,则默认分隔符是空格。rsplit是从右向左切分,当切分次数(maxsplit)传入时,两个函数会有区分。

  3. format()——字符串的格式化输出,可以按位置传参,也可以按key:value传参。

  4. join()——把可迭代对象中的字符串按照某种分隔符进行拼接,得到一个拼接字符串。

  5. replace()——用新的字符替代旧的字符
    isdigit()——判断字符串是否由纯数字组成
    capitalize()——字符串首字母大写
    title()——字符串中每个单词的首字母都大写

列表的内置方法

小知识:①列表是有序、可变类型。②类型转换:list()。参数为可被for循环遍历的类型(字符串、列表、字典),底层原理就是for循环。

  1. 切片—— *** 作与字符串类似,为浅拷贝。

  1. insert(index,object)——在索引(index)前插入对象(object)。该 *** 作改变原列表。

  2. append(object)——在列表后面追加对象(object)。

  1. extend(iterable)——在列表后面添加多个元素。传入参数可被for循环遍历,该函数底层原理就是for循环。

  1. del()——删除列表中的元素,或者删除整个列表,无返回值。

  2. pop(index)——删除列表指定索引的值,并返回该值。默认索引为-1,即删除列表最后面的值。

  1. remove(value)——删除列表中给定的值(value)。

  1. count(value)——统计列表中出现值(value)的次数
    clear()——清除列表的所有元素
    index(value)——返回值(value)第一次出现的索引
    reverse()——颠倒列表元素的顺序
    sort(key, reverse)——列表元素排序。排序原则是大小。字符比较大小按照ASCII码,字符串比较大小按照对应位置字符比较大小。列表比较大小同字符串,但两个列表对应位置元素类型应相同。
整型的进制转换方法

十进制 ----> 二进制 bin()
十进制 ----> 八进制 oct()
十进制 ----> 十六进制 hex()

预备知识
  1. 可变类型与不可变类型
    可变类型:当值改变时,内存地址不发生变化。如:列表、字典。列表、字典中的元素可以改变。但其无本身的id不发生变化。

    不可变类型:当值发生改变时,内存地址也发生改变。如:整型、浮点型、布尔值。int、float、str是一个整体,无法改变其中的值。当值改变时,相当于创建一个新值,开辟新的内存。故他们的任何 *** 作都与本来的值无关。

  2. 列表在内存中的存储
    内存开辟一个空间2250332600832给列表,列表的内存地址保存的是列表索引(0,1,2)及其索引值(1,2,3)所对应的内存地址(140720426133280,140720426133312,140720426133344)。

  3. 浅拷贝与深拷贝(以列表为例)
    浅拷贝:把原列表第一层元素的内存地址拷贝一份。方法为 .copy( )
    如上例所示,list1列表的第一、二个元素是整型,第三个元素是一个列表(取名为list3),list3的两个元素都是整型。当调用list1.copy( )方法时,开辟新的内存空间,与list2关联。故list1和list2的id不同。当修改list1的第一个元素,将1改成11时,由于整型是不可变类型,故开辟新的内存,将此内存地址更新为list1的第一个元素的内存地址,list2的第一个元素的内存地址不变,故list1第一个元素为11,list2的第一个元素仍然是1。当修改list1中list3的第一个元素时,list3第一个元素的内存地址改变,但是list3本身的地址未被改变,故list1和list2中的list3的id是一样的。list1和list2中的list3的第一个元素都被改变。简单来说:当列表中含有可变类型的元素时,浅拷贝得到的列表中的元素有可能随着原列表的改变而改变。
    深拷贝:拷贝列表中元素时,元素若是不可变类型,则直接拷贝元素的内存地址;元素若是可变类型,则开辟一个新的内存地址。方法:引入copy,copy.deepcopy( )。
    在本列中,深拷贝与浅拷贝的区别在于,浅拷贝list3本身的id不变,深拷贝list3本身的id改变,故改变list1中list3的第一个元素时,list1改变,list2不变。因为此时list1中list3和list2中list3内存地址不同,不再是同一个list3了。
    注:

    此种情况下,仅是将list1的内存地址与list4关联。当list1改变时,list4也会改变。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/722443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存