• 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



  • 相关阅读:
    CSS3 target伪类简介
    不用position,让div垂直居中
    css3 在线编辑工具 连兼容都写好了
    a标签伪类的顺序
    oncopy和onpaste
    【leetcode】1523. Count Odd Numbers in an Interval Range
    【leetcode】1518. Water Bottles
    【leetcode】1514. Path with Maximum Probability
    【leetcode】1513. Number of Substrings With Only 1s
    【leetcode】1512. Number of Good Pairs
  • 原文地址:https://www.cnblogs.com/fenny0907/p/7392221.html
Copyright © 2020-2023  润新知