python06_列表

变量类型-List

  1. list

    列表的数据项不需要具有相同的类型

    List(列表) 是 Python 中使用最频繁的数据类型。

    列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套。

  2. 列表取值
    列表用 [ ] 标识,是 python 最通用的复合数据类型。

    my_list01=[1,3,5,7,9,11]
    #my_list01 # 输出完整列表
    #my_list01[0] # 输出列表的第一个元素
    #my_list01[-1] # 输出列表的最后一个元素
    for item in my_list01:
    print(item)

     for i in range(len(my_list01)):
         print(my_list01[i])
     加号 + 是列表连接运算符,星号 * 是重复操作。
     
     my_list02=[10,30,50]
     
     my_list03=my_list01+my_list02 #列表合并
     
     my_list04=my_list01*3 
    
  3. 切片

    列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

               list=[1,3,5,7,9,11]
        
        # 获取第二个至第三个元素 
        list[1:3]           
        
        # 获取从第三个开始至列表末尾的所有元素
        list[2:]            
        
        # 获取从第0个开始至第五个列表元素
        list[:5]
        
        # 获取列表所有元素
        list[:]
        
        # 步长为2 
        list[::2]           
        
        # 反转数组
        list[::-1]      
        
        # 从后往前截取
        list[-1:-3:-1]  
    
  4. list 内置函数

    fruits = ['orange', 'apple', 'pear', 'banana']
    
    1. 统计

       print (fruits.count('apple'))
      
    2. 判断是否存在

       如果没有找到会异常
      
           print (fruits.index('apple')) 
           print ('apple' in fruits)
       
       
           # 从第三个位置开始寻找
           # print (fruits.index('apple',3))
      
    3. 反转

           fruits.reverse()
      
    4. 排序

           fruits.sort()
      
    5. 增加元素

            fruits.append('kiwi')
           # 增加集合
         fruits.extend(['kiwi','water'])
      
    6. 合并两个列表

         new_fruits=fruits+['kiwi','water']
      
    7. 插入元素

           fruits.insert(0,'pick');
      
    8. 删除聊表末尾的元素

       # fruits.pop()
       # fruits.pop(index)  删除指定位置的元素
      
    9. 删除元素

           # fruits.remove('apple')
           # fruits.remove(fruits[2])
           # del fruits[1]
           # 删除单个元素
           # fruits[1:2]=[]
           # 删除多个元素
           # fruits[2:4]=[]
      
    10. 替换元素

      # fruits[0:3]=['橙子','苹果','梨']
      
    11. 拷贝

      浅拷贝

      fruits_copy01=fruits[:]
      fruits_copy02=fruits.copy()
      

      深拷贝

    12. 清空元素

    # fruits.clear()
        # del fruits[:]  #不同于del fruits
        # fruits[ : ]=[]
    
    1. 最大最小值

       # print(max(fruits))
       # print(min(fruits))    
      
  5. 多维数组

     list01=[1,3,[5,7,9,11]]
    
    1. 浅拷贝

       list02=list01.copy()
       list03=list01[:]
      
    2. 深拷贝

       import copy
      
       list02=copy.deepcopy(list01)
      
  6. 栈和队列

     from collections import deque
     fruits = ['orange', 'apple', 'pear', 'banana']
     # from collections import deque
     #
     queue = deque(fruits)
     
     # 先进先出
     queue.append('haha')
     queue.popleft()
     
     # 先进后出
     queue.append('')
     queue.pop()
     
     print(list(queue))
    
  7. 列表初始化,插值表达式

     squares=[]
     squares=[x**2 for x in range(10)]
     vec = [-4, -2, 0, 2, 4]
    
     vec2=[x*2 for x in vec]
    
     vec3=[x for x in vec if x >= 0]
    
     vec4=[abs(x) for x in vec]
     
     print ([(x, x**2) for x in range(6)])
    
     squares=[]
    
     squares=list(map(lambda x: x**3, range(10)))
     
     #lists=[[(x, y) 外层循环 内层循环 if x != y]]
    
     lists=[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
    
     # [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
    
     去掉列表元素单词左右空格
    
     # freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']
     #
     # # 去掉单词左右空格
    
     # freshfruit=[weapon.strip() for weapon in freshfruit]
    
    
     读取二维数组
    
    
     vec = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    
     list1=[num for elem in vec for num in elem]
     list2=[[elem[i] for elem in vec] for i in range(3)]
     print(list2)
    
  8. list去重

    方法一:新建新数组

    方法二:

        list01=[1,2,2,2,3,4,2,5,4,2]
        le=len(list01)
        i=0
        while i<le-1:
            j=i+1
            while j<le:
                if list01[i]==list01[j]:
                    list01.remove(list01[i])
                    le-=1
                    i-=1
                    break
                j+=1
            i+=1
        
        
        print(list01)
    

    方法三:(删除后面所有与当前元素相同的元素)

        list01=[1,2,2,2,3,4,2,5,4,2]
        le=len(list01)
        i=0
        while i<le-1:
            j=i+1
            while j<le:
                if list01[i]==list01[j]:
                    list01.pop(j)
                    le-=1
                    j-=1
                j+=1
            i+=1
        
        print(list01)
    
  9. python中的list和array的不同之处

    python中的list是python的内置数据类型,list中的数据类不必相同的,而array的中的类型必须全部相同。在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储和消耗cpu。

    补充了解:map()

    map() 会根据提供的函数对指定序列做映射。

    第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

    map(function, iterable, ...)


返回值
Python 2.x 返回列表。

Python 3.x 返回迭代器。


    arr=[1,2,3,4]

    mm=map(lambda x:x ** 2,arr)
    print(next(mm))
    
    for res in mm:
        print(res)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,709评论 0 8
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,424评论 0 13
  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 1,887评论 0 3
  • 南国驻足在暖阳里 翻抖出那几片傲立的花瓣 抚慰着迤逦的山河、星辰、和他 当他走近一些时 她期盼着冰河撞击山脉 灵魂...
    草柒阅读 382评论 2 6
  • 单链表从头到尾遍历、插入元素比较方便,但是删除元素就没有那么方便了,此时我们需要用到双向链表。双向链表,顾名思义就...
    shui水mo墨阅读 217评论 0 1