美文网首页
2019-05-20

2019-05-20

作者: paxliverrr | 来源:发表于2019-05-23 17:28 被阅读0次

    其他对象的切片操作

    前面的切片操作说明都以list为例进行说明,但实际上可进行的切片操作的数据类型还有很多,包括元组、字符串等等。

    >>>foriinrange(1,100)[2::3][-10:]:

    print(i)

    就是利用range函数生成1-99的整数,然后取3的倍数,再取最后十个。

    常用切片操作

    以列表:a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 为说明对象

    1.取偶数位置

    >>>b = a[::2][0,2,4,6,8]

    2.取奇数位置

    >>>b = a[1::2][1,3,5,7,9]

    3.拷贝整个对象

    >>>b = a[:]#★★★★★

    >>>print(b)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    >>>print(id(a))#41946376

    >>>print(id(b))#41921864

    >>>b = a.copy()

    >>>print(b)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    >>>print(id(a))#39783752

    >>>print(id(b))#39759176

    需要注意的是:[:]和.copy()都属于“浅拷贝”,只拷贝最外层元素,内层嵌套元素则通过引用,而不是独立分配内存。

    >>>a = [1,2,['A','B']]

    >>>print('a={}'.format(a))

    >>>b = a[:]

    >>>b[0] =9#修改b的最外层元素,将1变成9

    >>>b[2][0] ='D'#修改b的内嵌层元素

    >>>print('a={}'.format(a))

    >>>print('b={}'.format(b))

    >>>print('id(a)={}'.format(id(a)))

    >>>print('id(b)={}'.format(id(b)))

    a=[1,2, ['A','B']]#原始a

    a=[1,2, ['D','B']]#b修改内部元素A为D后,a中的A也变成了D,说明共享内部嵌套元素,但外部元素1没变。

    b=[9,2, ['D','B']]#修改后的b

    id(a)=38669128

    id(b)=38669192

    4.修改单个元素

    >>>a[3] = ['A','B']

    [0,1,2, ['A','B'],4,5,6,7,8,9]

    5.在某个位置插入元素

    >>>a[3:3] = ['A','B','C'][0,1,2,'A','B','C',3,4,5,6,7,8,9]>>>a[0:0] = ['A','B']['A','B',0,1,2,3,4,5,6,7,8,9]

    6.替换一部分元素

    >>>a[3:6] = ['A','B'][0,1,2,'A','B',6,7,8,9]

    作者:马尔代夫Maldives

    链接:https://www.jianshu.com/p/15715d6f4dad

    来源:简书

    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:2019-05-20

          本文链接:https://www.haomeiwen.com/subject/nashzqtx.html