美文网首页
2018-10-08 Day 07 容器类型之列表

2018-10-08 Day 07 容器类型之列表

作者: EryangZ | 来源:发表于2018-10-08 17:21 被阅读0次

    Day 07 容器类型之列表

    1. recode

    1. 基本数据类型

    int float bool complex str list dict tuple set
    

    类型名()——————>转换数据类型

    2. 字符串

    str
    a. 双引号或者单引号括起来的: "abc"、"123"、'\u4f17'
    b. 获取单个字符————>字符串[下标]
    c. 获取一部分字符————>字符串[:],字符串[::]
    d. +, *, 比较,一般比较两个字符大小比较多
    e. 常见字符串方法例如: len()、chr(由编码值获取字符)、ord(获取字符编码值)
    f. 格式化字符串:%s、%d、%.nf  {}.format()
    

    3. 分支结构

    if 条件语句:
        语句
    
    if 条件语句:
        语句1
    else:
        语句2
    
    if 条件语句:
        语句1
    elif 条件语句2:
        语句2
    else:
        语句3
    

    4. 循环结构

    for 变量 in 序列(容器类型的数据):
        循环语句
    
    while 条件语句:
        循环语句
    
    break、continue、else
    break和continue只能在循环体里面
    
    break 直接结束整个循环
    continue 结束当次循环
    else 当所有循环正常完成结束后,执行else
    

    2. 认识列表

    列表(list):

    1. 什么是列表

    列表是python中的容器类的数据类型,可以用来存储多个数据,注意:列表是可变的,有序的可变是指列表的元素的值和位置以及列表的长度可变,增、删、该有序是指列表确定后列表的每个元素都是有顺序的,可以通过下标来获取元素

    2. 列表的字面量

    格式:[元素1, 元素2, 元素3, ……, 元素n]

    []————>空列表
    列表中的元素可以是任何类型的数据————>包括整数,浮点型、复数、bool值、列表、元组、集合、函数、类的对象等等

    list1 = [1, 23, "abc"] # 声明一个变量lis1,有三个元素
    list2 = [[1, 2], "abc", True, False] #声明一个列表,有四个元素,列表、字符串、bool值
    

    注意:变量也可以作为列表的元素

    name = "路飞"
    names = ["二扬", "小花", "小红", name]
    print(names)
    

    3. 获取元素

    1. 获取单个元素

    列表[下标] 说明:列表一旦确定,列表中每个元素的下标就确定了,下标的范围0列表长度或-1-列表长度

    names = ["路飞", "娜美", "佐罗", "山治", "罗宾"]
    print(names[0], names[-4])
    print(names[2])
    
    print(names[20])  报错,list index out of range
    

    2. 获取部分元素(切片)————>结果是一个新的列表

    和字符串切片一样,列表[起始下标:结束下标], 列表[起始下标, 结束下标, 步长]

    print(names[1:3])
    print(names[:4:2])
    print(names[::-1])
    

    4. 元素的增、删、改

    films = ["绿巨人", "钢铁侠", "蜘蛛侠", "神奇四侠"]
    

    1. 增(增加元素),直接修改列表

    a. append(),在列表最后添加元素

    films.append("美国队长")
    print(films)
    films.append("恐怖游轮")
    print(films)
    

    b. insert(下标, 元素),在指定下标前添加指定元素

    films.insert(1, "双瞳")
    print(films)
    
    films.insert(0, "雷神")
    print(films)
    

    c. +

    film1 = ["雷神"]
    film2 = ["美队"]
    print(film1 + film2)
    

    2. 删(删除列表元素)

    a. del 列表[下标]————>删除列表中指定位置的元素

    del语句是python中用来删除数据的语法,可以删除任何数据

    print("--------------------------------------")
    a = 10
    del a
    # print(a)  报错,a没有被声明
    
    heros = ["盖伦", "儿童劫", "维克托", "提莫", "托儿索", "儿童劫"]
    print(heros)
    del heros[-2]
    print(heros)
    

    b. 列表.remove(元素) ————>删除列表中指定的元素,删除的是从左至右第一个

    heros.remove("儿童劫")
    print(heros)
    

    c. 列表.pop() --->将列表中最后一个元素取出

    列表.pop(下标) --->将列表中指定的元素取出

    gun = ["98k", "M4", "AK", "AWM", "Vector"]
    print(gun)
    a = gun.pop()
    print(gun, a)
    
    b = gun.pop(1)
    print(gun, b)
    

    3. 改(修改列表中的元素)

    a. 单个元素修改:列表[下标] = 新值 ---->修改指定下标对应的元素

    print("============================")
    teachers = ["余婷", "路飞", "二扬", "索罗"]
    print(teachers)
    teachers[0] = "yuting"
    print(teachers)
    

    b. 切片修改:列表[:] = 新值

    name = ["ers", "haha", "yuting", "chris", "xeman"]
    name[0:2] = "eryang", "han"
    print(name)
    

    5. 练习

    遍历列表中的元素

    a. for循环遍历列表,拿到的就是列表中的每个元素

    numbers = [1, 3, 5, 7, 9, 11]
    for x in numbers:
        print(x)
    

    b. 通过下标遍历元素

    for index in range(0, len(numbers)):
        print(numbers[index])
    

    练习1:有一个列表保存一个班的五个学生的成绩,求总成绩

    grades = [100, 90, 80, 20, 10]
    sum1 = 0
    for i in grades:
        sum1 += i
    print(sum)
    

    练习2:用一个列表保存多个人的名字(英文),将列表中所有的人的名字首字母大写

    names = ["erYang", "jone", "alIce", "hAn", "bob", "hesan"]
    print(names)
    for i in range(len(names)):
        names[i] = names[i].title()
    print(names)
    

    练习3:删除上一个列表中首字母是H的人的名字

    for name in names[:]:
        if name[0] == "H":
            names.remove(name)
    print(names)
    
    
    names = ["Eryang", "Jone", "Alice", "Han", "Bob", "Hesan"]
    index = 0
    while index < len(names):
        name = names[index]
        if name[0] =="H":
            names.pop(index)
            continue # 或者 index -= 1
        index += 1
    print(names)
    

    练习4:用一个列表保存一个班的成绩,删除不及格的同学的成绩

    score = [100, 99, 20, 39, 50, 66, 77, 39, 94, 5, 88, 43]
    for x in score[:]:
        if x < 60:
            score.remove(x)
    print(score)
    
    
    scores = [100, 99, 20, 39, 50, 66, 77, 39, 94, 5, 88, 43]
    index = 0
    while index < len(scores):
        score = scores[index]
        if score < 60:
            scores.pop(index)
            index -= 1
        index += 1
    print(scores)
    

    6. 列表的相关运算

    1. +

    列表1 + 列表2 会将两个列表合并产生一个新的列表

    list1 = [1, 2, 3]
    list2 = ["a", "b", "c"]
    print(list1 + list2)
    print(list1, list2)
    

    2. *

    列表*n 将列表中的元素重复n次,产生一个新的列表

    print(list1 * 3)
    
    
    print("================")
    

    3. 比较运算符

    a. list1 == list2 判断两个列表中的元素(值)是否相等(个数, 值, 顺序)

    print([1, 2, 3] == [2, 1, 3])
    print([1, 2, 3] == [1, 2, 3])
    

    b. is 比较两个列表(地址)是否相等(面试的区别)

    id、value、type

    id--->数据在内存的地址

    value--->数据的值

    type---->数据的类型

    python 中变量存储数据的时候存储的是数据的地址(id),取出来的是值(value)

    a = [1, 2, 3]
    b = [1, 2, 3]
    print(a is b)
    
    c = a
    print(c is a)
    

    c. <、> 两个列表比较大小,比较的是每个元素的大小,一般比较列表的第一个

    元素,如果相等依次比较,不同类型的无法比较

    print([1, 2, 3, 5] > [1, 2, 3, 4])
    

    7. 列表赋值

    1. +

    列表1 + 列表2 会将两个列表合并产生一个新的列表

    list1 = [1, 2, 3]
    list2 = ["a", "b", "c"]
    print(list1 + list2)
    print(list1, list2)
    

    2. *

    列表*n 将列表中的元素重复n次,产生一个新的列表

    print(list1 * 3)
    
    
    print("================")
    

    3. 比较运算符

    a. list1 == list2 判断两个列表中的元素(值)是否相等(个数, 值, 顺序)

    print([1, 2, 3] == [2, 1, 3])
    print([1, 2, 3] == [1, 2, 3])
    

    b. is 比较两个列表(地址)是否相等(面试的区别)

    id、value、type

    id--->数据在内存的地址

    value--->数据的值

    type---->数据的类型

    python 中变量存储数据的时候存储的是数据的地址(id),取出来的是值(value)

    a = [1, 2, 3]
    b = [1, 2, 3]
    print(a is b)
    
    c = a
    print(c is a)
    

    c. <、> 两个列表比较大小,比较的是每个元素的大小,一般比较列表的第一个

    元素,如果相等依次比较,不同类型的无法比较

    print([1, 2, 3, 5] > [1, 2, 3, 4])
    

    相关文章

      网友评论

          本文标题:2018-10-08 Day 07 容器类型之列表

          本文链接:https://www.haomeiwen.com/subject/mnujaftx.html