zoukankan      html  css  js  c++  java
  • Python学习笔记之列表和元组

    列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作,以[]标识,中间用逗号隔开

    names = ['aa',"bb",'cc'] #names变量用列表来赋值

    列表索引以0开头

    names = ['aa',"bb",'cc','dd','ee']
    print(names[0])#aa
    print(names[-1])#ee
    print(names[:-1])#['aa', 'bb', 'cc', 'dd']
    print(names[:])#['aa', 'bb', 'cc', 'dd', 'ee']
    print(names[1:3])#['bb', 'cc']顾头不顾尾
    print(names[1::2])#['bb', 'dd']步长为2

    append()追加,可以是任意参数,作用是往已有列表中添加元素,如果添加的是列表,就被当成一个元素存在原列表中,只使list长度增加1.

    names = ['aa',"bb",'cc','dd','ee']
    #names.append('ff')
    print(names)#['aa', 'bb', 'cc', 'dd', 'ee', 'ff']
    names.append(["d1","d2"])
    print(names)#['aa', 'bb', 'cc', 'dd', 'ee', ['d1', 'd2']]

    insert()插入 insert(index,obj)列表与方法之间用点号相隔,括号内需要添入的参数分别是索引和要插入的元素

    names = ['aa',"bb",'cc','dd','ee']
    names.insert(2,"a1")
    print(names)#['aa', 'bb', 'a1', 'cc', 'dd', 'ee']

    修改

    names = ['aa',"bb",'cc','dd','ee']
    names[2]="a1"
    print(names)#['aa', 'bb', 'a1', 'dd', 'ee']

    删除

    names = ['aa',"bb",'cc','dd','ee']
    方式1 del:
    del names[2]
    print(names)#['aa', 'bb', 'dd', 'ee']
    方式2 remove:
    names.remove("cc")
    print(names)#['aa', 'bb', 'dd', 'ee']

    方式3 pop:
    names.pop()
    print(names)#['aa', 'bb', 'cc', 'dd']默认是删除最后一个,指定索引就删除对于索引的元素
    这里按索引
    names.pop(2)
    print(names)#['aa', 'bb', 'dd', 'ee']

    扩展extend

    names = ['aa',"bb",'cc','dd','ee']
    aa = [1,2,3]
    names.extend(aa)
    print(names,aa)#['aa', 'bb', 'cc', 'dd', 'ee', 1, 2, 3] [1, 2, 3]

    复制copy

    names = ['aa',"bb",'cc','dd','ee']
    names2 = names.copy()
    print(names2)#['aa', 'bb', 'cc', 'dd', 'ee']
    copy()与deepcopy()之间的区分必须要涉及到python对于数据的存储方式。
        首先直接上结论:
        —–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。
        —–而浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签被改变的时候,数据块就会发生变化,另一个标签也会随之改变。这就和我们寻常意义上的复制有所不同了。
            对于简单的 object,用 shallow copy 和 deep copy 没区别
            复杂的 object, 如 list 中套着 list 的情况,shallow copy 中的 子list,并未从原 object 真的「独立」出来。也就是说,如果你改变原 object 的子 list 中的一个元素,你的 copy 就会跟着一起变。这跟我们直觉上对「复制」的理解不同。
    names = ['abc','def',["baby",22]]
    print(names)
    names2= names.copy()#跟copy.copy(names)等价
    names[2][0] = "BaBy"
    print(names)#['abc', 'def', ['BaBy', 22]]
    print(names2)#['abc', 'def', ['BaBy', 22]] 这个是浅copy
    import copy
    names = ['abc','def',["baby",22]]
    print(names)
    names3 = copy.deepcopy(names)
    names[2][0] = "BaBy"
    print(names)#['abc', 'def', ['BaBy', 22]]
    print(names3)#['abc', 'def', ['baby', 22]]这个是深copy

    按照最外层的来修改,也可看成是简单的对象
    names = ['abc','def',["baby",22]]
    print(names)
    names3 = copy.copy(names)
    names[2] = ['BaBy', 22]
    print(names)#['abc', 'def', ['BaBy', 22]]
    print(names3)#['abc', 'def', ['baby', 22]]
     

    计数count

    names = ['aa',"bb",'cc','dd','aa']
    names2 = names.count("aa")
    print(names2)#2

    清空clear

    names = ['aa',"bb",'cc','dd','aa']
    names.clear()
    print(names)#[]

    排序sort、reverse

    names = ['1aa',"Cbb",'1cc','dd','aa']
    names.sort()
    print(names)#['1aa', '1cc', 'Cbb', 'aa', 'dd']按照ASCII码表的顺序来排序
    names2 = ['aa',"bb",'cc','dd','ee']
    names2.reverse()
    print(names2)#['ee', 'dd', 'cc', 'bb', 'aa']

    下标index

    names = ['aa',"bb",'cc','dd','ee']
    print(names.index('bb'))#1

    元组

    元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

    names = ('aa',"bb",'aa','dd','ee')
    print(names.count("aa"))#2
    print(names.index('bb'))#1



  • 相关阅读:
    php数组转换成js可用的数组的两种方式
    常用正则表达式--------------[拿把小刀,强大自己]
    AngularJs 相应回车事件
    常见的关系型数据库和非关系型数据库及其区别
    CMDB资产采集
    GB和GiB的区别
    python枚举详解
    python保留两位小数
    详解TCP三握四挥
    npm run dev 和 npm run serve
  • 原文地址:https://www.cnblogs.com/fenny0907/p/7392221.html
Copyright © 2011-2022 走看看