• python中的列表list


    python中的list被称为列表、数组,list内部存储的数据时有序的,常常通过下标/角标/索引/编号查找list的元素

    1.定义一个list

    namelist = ['xiaoming','xiaohong','xiaoyue']

    2.list的类型

    print(type(namelist))   <<<   <class 'list'>

    3.list增加元素

    namelist.append('xiaowang')#list添加信息,append在列表的末尾增加元素
    namelist.insert(0,'xiaowang')#list在指定的位置添加信息list.insert(index,value)

    4.list删除元素

    namelist.pop(2)#删除指定位置的元素
    namelist.remove('xiaoyue')#删除指定的值
    del namelist[2]#del 也是删除指定位置的,利用函数删除

    5.修改元素

    namelist[1] = 'xiaomi'#修改元素,直接赋值,通过编号

    6.查元素

    print(namelist[1])#取列表里面的第二个元素
    print(namelist[-1])#取列表里面的最后一个元素

    7.list方法

    namelist.clear()#清空整个list
    namelist.count('xiaowang')#返回这个元素在这个list中出现的次数
    namelist.index('xiaowang')#返回这个元素第一次出现的下标,如果不存在这个元素会报错
    namelist.reverse()#反转,没有任何的返回值,将namelist内容反转  
    print(namelist)  #>>>
    ['xiaoyue', 'xiaohong', 'xiaoming']
    print(len(listinlist))#查看list的元素个数

    8.拼接两个list

    userlist=['Tony','Tim']
    namelist.extend(userlist)#将userlist里面的值加入到namelist中,插入到namelist的后面,namelist值改变了
    alllist = namelist+userlist#两个列表相加,也是合并到一起的意思,两个list都没有改变,重新赋值给alllist

    9.list内部排序(此时的所有元素必须为数字,整型/浮点)

    numlist = [1,3,9,2,34]
    numlist.sort()#排序,没有任何的返回值,排序默认升序 <<< [1,2,3,9,34]
    numlist.sort(reverse=True)#排序变为降序  <<<  [34,9,3,2,1]

    10.多维数组

    #判断几维数组,就看有几个list层
    list1 = [1,2,3]#一维数组
    list2 = [21,2,[4,'4']]#二维数组
    listinlist=[[1,2,3,4,5],['dd','ff','gg','ss',['aa','bb']],33]#三维数组
    #多维数组操作:
    listinlist[1][2]='性别'  >>> [[1,2,3,4,5],['dd','ff','性别','ss',['aa','bb']],33]
    listinlist[1][4].append('cc') >>> [[1,2,3,4,5],['dd','ff','性别','ss',['aa','bb','cc']],33]

    11.list循环两种方式

    python3中range() 函数可创建一个整数序列对象,一般用在 for 循环中。<<<   <class 'range'>
    range(start,stop[,step]) >>> range(0,5,1)从0开始,截止到4不包括5,步长为1
    将range转换为lis >>> list(range(0,10,2)) >>> [0,2,4,6,8]
    for name in namelist:#直接循环list,name为每次循环中namelist的元素值
         print(name)
     for i in range(len(namelist)):#通过角标获取元素值
         print(namelist[i])

    12.string to list

    import string
    strus = ['11','22','rere','ggf','wew']
    nums=[]
    1.for i in string.digits:#1.for循环     nums.append(int(i))   >>>  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    2.nums = list(string.digits)#2.强制类型转换   >>> ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

    13.list循环实例:

    第一个:
    a=[1,3,4,3,7,7,5] for i in a: if i%2!=0: a.remove(i)#删除只能删掉第一个出现的i,后面的i不能被删除 print(a)#执行结果是[4,3,7,5],第一次是奇数删除,列表变为[3,4,3,7,7,5],第二次循环呢从下标1开始,此时3变成了下标0,所以3被打印出来,以此类推 第一次 [1,3,4,3,7,7,5] 下标0,value为1,删除 第二次 [3,4,3,7,7,5] 下标1,value为4,保留 第三次 [3,4,3,7,7,5] 下标2,value为3,删除第一个3 第四次 [4,3,7,7,5] 下标3,value为7,删除第一个7 第五次 [4,3,7,5] 下标4,超过数组下标最大值,跳出for循环 结果为 [4,3,7,5]

    第二个: a
    =[1,3,4,3,7,7,5] b=a#list赋值给的是内存地址,此时a和b存储的是一个内存地址,指向一个空间,所以循环a或者b都一样 for i in b: if i%2!=0: a.remove(i) print(id(a)) print(id(b))#a和b的内存地址是一样的,因为b=a,定义a的时候,a里面存的是内存地址,内存地址指向的是一个存储数据的内存 print(a)#执行结果为[4,3,7,5]

    第三个: a=[1,3,4,3,7,7,5] b=a[:]#取出a中的所有元素给b,并不是内存地址,此时b被重新分配一个内存空间,a和b所存储的内存地址不同,此时循环b删除a,b永远都是完整的b for i in b: if i%2!=0: a.remove(i) print(id(a)) print(id(b))#a和b的内存地址是不一样的

    14.例子

    username = 'xiaohong'
    namelist = ['xiaoming','xiaohong','xiaoyue']
    if namelist.count(username)>0:#查找username在namelist中出现的次数,如果大于0代表存在
        print('user is exist')
    if username in namelist:#用in也能进行判断,判断用户是否存在
        print('user is exist')
    if not username in namelist:#用户不存在,条件判断前面加一个not
        print('user is not exist')
  • 相关阅读:
    "rm f xxx"不起作用? 还是需要确认删除?
    (转)C# 3.0语言的新特性——Lambda表达式
    (转)依赖注入的思想(目前见过最好的对DI的描述)
    #import、#include、#import<>和#import””的区别
    Cocoa设计模式之委托
    详解MAC硬盘中各个文件夹
    Cocoa设计模式之单例
    ObjecticeC之关联对象
    UDID被禁用后的集中替代品
    Cocoa设计模式之KVO
  • 原文地址:https://www.cnblogs.com/xiaoneng/p/9198261.html
Copyright © 2020-2023  润新知