Python学习总结【连载】(五)

Python学习总结【连载】(五)

2018.06.19 Juttachen


概述

+ 18 list 的概述

  • 概念与特点

+ 19 list 元素的加改删查

+ 20 关于list的运算符和函数


十八、list 的概述

1. 概念与特点

补充:python中的数据类型:数字(不可变),字符串(不可变),列表,元组(不可变),字典,集合(不可变)
后四种又称序列类型或者容器类型数据,他们的特点就是可以存储很多数据。

列表:一个列表中可以存储多个不同类型的数据(在别的语言中又可以叫数组)
列表存储数据的方式:将多个数据放到一个中括号中,多个数据直接用逗号隔开。
列表特点:列表是可变的(指的是里面元素的个数和值可变)
列表是有序的(所有可以通过下标去获取元素,【字符串也是有序的】)

例子:声明一个列表 list1: 有5个元素,标志是中括号。

    list1 =[1, 2, 3, 10.9, 'bcd']
    print(list1)

例子:声明一个空的列表

    list2 = []

十九、list 元素的加改删查

1.list 增加元素

    list1 = []

a. append方法:

格式:列表名.append(元素)
特点:append添加元素是将元素添加到列表的后面的

    list1.append('abc')
    print(list1)

    list1.append(10)
    print(list1)

练习:找出列表[1,34,5,6,89,3,2,4]中所有的偶数,并储存

    list2 = [1,34,5,6,89,3,2,4]
    list1 = []
    for item in list2:
        if item % 2 == 0:
            list1.append(item)
    print(list1)

b. insert方法:

格式:列表名.insert(index(下标),元素)
特点:1.在指定的下标前插入指定的元素
2.在insert中下标是可以大于列表长度的(可以越界)。

  • 当大于列表长度时,插入的数放在最后

  • 在列表最前面插入数时,可以将下标写成0

      list3 = [1, 2, 3, 4, 5, 6, 7, 8]
      list3.insert(1,'a')
      print(list3)
    

练习:通过insert在list3 的4和5之间插入元素’b‘,再在8的后面插入元素’c‘

    list3.insert(5,'b')
    list3.insert(10,'c')
    print(list3)

2.list 修改元素

修改元素:通过下标拿到对应的元素,然后重新赋值(一定注意只有操作下标才能修改)

    list1 = [1, 2, 3, 4, 5]
    list1[1] = 20 # 将下标是1的元素变成20
    print(list1)

3.list 删除元素

a. del语句

补充:del语句在python中,可以删除任何内容。
del语句删除列表元素的语法:del 列表名[下标],删除的时候下标也是不能越界的
例子:删除下标为1的元素

    list1 = ['a',10,True]
    print(list1)
    del list1[1]
    print (list1)

b. remove方法

格式:列表名.remove(元素)
特点:

  • 可以删除指定元素

  • 直接与元素相关,和下标没有关系

  • 使用remove删除列表元素的时候,如果指定的元素在列表中有多个,只删除第一个

      list4 = ['a','b','c',1,2,3]
      list4.remove('c')
      print(list4)
    

c.pop方法

可以取出指定下标的元素,对列表来说则是被删除。
格式:列表名.pop(下标):准确的说是从列表中取出指定下标的元素。(元素本身存在,但是被取出了,对于列表来说就是不存在了)
格式:列表名.pop():从列表中取出最后一个元素。

    list6=[1,3,4,2,3,4,1]
    delitem = list6.pop(1) #将下标是1的元素从列表中取出
    print(delitem,list6)

    del_item2 = list6.pop()
    print(del_item2,list6)

例子:讲一个列表[1,2,3,4,5,6]中的元素全部取出放到另一个列表里变成[6,5,4,3,2,1]

    list1 = [1,2,3,4,5,6]
    list2 = []
    while len(list1)>0:
        # 从前往后取
        value = list1.pop(0)
        list2.insert(0,value)
        # 从后往前取
        value = list1.pop()
        list2.append(value)
        print(value)
    print(list1)
    print(list2)

4.获取列表元素(拿数据)

a.获取单个元素

字符串的切片问题和列表也是一样的,都是一种方式。

    list1 =[1, 2, 3, 10.9, 'bcd']
    print(list1[0])
    print(list1[3])
    print(list1[-1])
    # print(list[5]) 越界错误     IndexError:list indeo out of range

b.获取子串

还是与字符串相似。

    list3 = [2,10.5,'a','abc',10]
    print(list3[1:4])  # 左闭右开,获取到的是从开始下标到结束下标前一个的所有元素
    print(list3[0:4:2]) # 从下标为0开始到下标为3,每两个元素取一个
    print(list3[::2])

c. 遍历列表

遍历列表即把列表中的元素一个一个的拿出来。
通过for循环将元素全部打印一次

    list4 = [1,34,6,2,8,91,4]

    for item in list4:
        if item % 2 == 0:
            print(item,end=' ')

计算列表中所有元素的和

    print()
    sum1 = 0
    for item in list4:
        sum1 += item
    print(sum1)

使用while循环遍历列表元素

    i = 0  # i就是列表元素对应的下标
    while i < len(list4):
        print(list4[i])
        i += 1

取下标是奇数的数
方法一:

    i = 1
    while i < len(list4):
        print(list4[1])
        i += 2

方法二:

    i = 0
    while i < len(list4):
        if i % 2 == 0:
            i += 1 # 必须要写,因为continue会终止一次循环,后面的就不运行了,如果没有这句话就会死循环。
            continue
        print(list4[i])
        i += 1

二十、关于list的运算符和函数

1.求列表长度借用len()函数

格式:len(列表或列表名)

    list1 =[1,2,3,4,5,6]
    length = len(list1)
    print(length)

2.列表的+操作

列表1+列表2:将列表1和列表2中的元素,组合成一个新的列表

    list2 = [1, 2, 3, 4] + ['a','b']
    print(list2)

3.列表的*操作

列表整数:将列表中的元素重复指定次数,组合成一个新的列表。*

    list3 = [10, 2]*4
    print(list3)

4. in 和 not in

元素 in列表:判断指定的元素是否在指定的列表中
元素 not in列表:判断指定的元素是否不在指定的列表中

    list4 = ['abc','123',1,'0o',10]
    re = 'abc' in list4
    print(re)

    re = 'abcd' not in list4
    print(re)

4.获取列表中的最大的元素

*** 格式:max(列表)***

    list5 = [1,34,6,78,90,12,35]
    max1 = max(list5)
    min1 = min(list5)
    print(max1)

5.获取列表中的最小值

格式:min(列表)

    list6 = ['a','b','c','d','a']
    print(max(list6))

注意:获取最大值或最小值的时候,列表的元素的类型要么都是数字要么都是字符串

练习:求表演的平均分数(5个裁判,给表演打分。去掉一个最高分,再去掉一个最低分)

    import random
    list1 = [] # 用来存储产生的随机数
    for _ in range(0,5): # 当出现明显的要重复的命令,就要写循环。
        num = random.randint(0,10)
        # random.uniform(x,y):随机产生固定范围的浮点数
        list1.append(num)
    print(list1)
    list1.remove(max(list1))
    list1.remove(min(list1))
    print(list1)
    # sum(列表):计算列表中所有的元素的和,这里就可以直接用sum函数来计算和,不用用循环
    sum = 0
    while len(list1)> 0:
        num1 = list1.pop()
        sum += num1
    print(sum/3)

6.将其他的数据转换成列表

格式:list(数据,但不是所有都行,只有序列类的才行),可以将字符串转换为列表。

    list1 = list('abcdefg')
    print(list1)
    # 将列表转成字符串(不仅仅是将列表的元素拼接成字符的,而是将整个列表所有的结构都作为字符串的字符)
    str1 =str([1,2,3,4,'a'])
    print(str1,str[0])

你可能感兴趣的:(Python学习总结【连载】(五))