列表 (list)

作者: 文化银儿 | 来源:发表于2018-07-20 19:29 被阅读32次

    一、 输入、输出函数

    1.输入函数:print()函数

    (1)默认每一个print函数,输出完内容后会输出一个换行
    (2)一个print函数输出多个内容的时候,内容之间是用空格隔开
    (3)内容后面加 end= 来设置结束标志,(默认是\n)
    (4)通过设置 sep 的值,来设置多个内容之间的间隔符(默认是' ')

    print('aa',1,end='\n',sep=',')
    

    2.输入函数:input()函数

    (1)input()函数可以接收从控制台输入的内容(以回车为标志结束)
    (2)input()函数会阻塞线程,即程序执行到input的时候会停下来,等待用
    户输入,输入完成后才会继续执行下面的内容
    (3)用户输入到的信息,后台接收到的数据是以字符串的形式返回的(在python2.x中
    输入的是数字的时候,可能返回int类型或者浮点型数据)

    value=input('请输入一个整数:')
     print('name',value,type(value))       #name 12 <class 'str'>
    
    练习:猜数字游戏

    要求:随机产生一个1-100的整数,输入的数字和随机产生的一样是,就显示猜对了,并且游戏结束但输入的数字大于或小于随机数,就提示大了或小了,然后让其重新输入

    import random     #先导入random(随机)函数
    random_num=random.randint(1,100)   #在1-100之间随机产生一个数
    print(random_num)    
    count=0
    while True:
        num = int(input('请输入一个数:'))   
        count+=1
        if num == random_num:
            print('恭喜你猜对了!')
            if count >=7:
                print('继续加油')
            if count==1:
                print('太厉害了')
            break
        if num < random_num:
            print('小了')
        if num > random_num:
            print('大了')
    
    

    二、列表

    列表、字典、元祖、集合都是序列,都是容器类型的数据类型

    列表(list):用来存储多个数据的一种数据类型,里面储存的单个数据叫元素

    特点:
    1.有序的
    2.可变的(可变指的是容器的内容的个数和值可变)
    3.元素可以是任何类型的数据

    列表的值:用[]将列表的元素括起来,多个元素之间用逗号隔开,[] --->空列表

    1.声明列表

    列表命名一般是复数 ,例:names[]

    list1 = []            # 创建空列表
    print(type(list1))            # <class 'list'>
    
    

    (1)声明一个变量,赋一个列表值

    list2 = [1, 2, [1, 2], {'a': 1}, 'a']
    print(type(list2), list2)      # <class 'list'> [1, 2, [1, 2], {'a': 1}, 'a']
    

    (2)将其他数据类型转化成列表

    list3 = list('212jjan')
    print(list3)           # ['2', '1', '2', 'j', 'j', 'a', 'n']
    

    (3)生成式(了解)

    list4 = list(i for i in range(10))
    print(list4)        # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    list4 = list(i * 2 for i in range(10))
    print(list4)        # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
    
    list4 = list(i * 2 for i in range(10) if i % 3 == 0)
    print(list4)        # [0, 6, 12, 18]
    

    2.获取列表元素

    列表中的每一个元素都对应一个下标:0~列表长度-1; -1~-列表长度

    (1)获取单个元素:列表名[下标]
    下标不能越界

    names=['1','2','3','4','5','6','7','8']
    print(names[3])  #4
    

    (2)获取部分元素(切片)
    <1>列表名[开始下标:结束下边:] 获取从开始下标到结束下标前所有的元素,结果是个小列表
    <2>列表名[起始下标:结束下标:步进] 从开始下标开始,每次下标值加步进获取下一个元素,直到结束下标为止
    <3>起始下标和结束下标都可以缺省
    <4>如果步进是正数,起始下标缺省就从第一个元素开始获取;如果步进是负数,就从最后一个元素往前获取
    <5>结束下标缺省,步进是正数,获取到最后一个,步进数负数,从后往前获取到第一个元素

    names=['1','2','3','4','5','6','7','8']
    print(names[1:3])   #['2', '3']
    print(names[-3:-1])   #['6', '7']
    print(names[::-1])  #['8', '7', '6', '5', '4', '3', '2', '1']
    
    

    (3)一个一个的获取列表中所有的元素(遍历列表)
    利用循环将列表中的元素挨个取出来
    for循环遍历--->遍历元素
    while循环遍历--->遍历下标

    scores=[45,86,23,85,22,96,84]
    
    # for循环遍历(遍历元素)
    for item in scores:
        print(item)
    '''
    结果:
    45
    86
    23
    85
    22
    96
    84
    '''
    
    # while循环遍历(遍历下标)
    index=0
    while index<len(scores):
        print(scores[index])
        index+=1
    '''
    结果:
    45
    86
    23
    85
    22
    96
    84
    '''
    

    3.获取列表的长度(获取列表元素的个数)

    print(len(scores))  #7
    

    添加列表元素(3种)

    1.append(元素)

    列表.append(元素)
    功能:在列表的末尾添加一个元素

    skills=[]
    skills.append('气体源流')
    print(skills)    #['气体源流']
    
    skills.append('拘灵遣将')
    print(skills)    #['气体源流', '拘灵遣将']
    
    

    2.insert函数

    列表.insert(下标,元素) (注意:下标可以越界)
    功能:在指定下标签前插入一个元素

    skills.insert(1,'通天禄')
    print(skills)  #['气体源流', '通天禄', '拘灵遣将']
    
    """插入的下标可以越界"""
    skills.insert(10,'通天禄')   #插到最后
    print(skills)   #['气体源流', '通天禄', '拘灵遣将', '通天禄']
    
    skills.insert(0,'通天禄')   #插到最前面
    print(skills)   #['通天禄', '气体源流', '通天禄', '拘灵遣将', '通天禄']
    
    

    3. +

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

    new_skills=skills+['丰厚气门','阿威十八式']
    print(new_skills)    #['通天禄', '气体源流', '通天禄', '拘灵遣将', '通天禄', '丰厚气门', '阿威十八式']
    

    练习:从控制台输入10个学生的成绩,然后保存在一个列表中

    scores=[]
    for _ in range(10):
         score=float(input('请输入成绩:'))
         scores.append(score)
    print(scores)
    

    4.删除列表元素(3种)

    注意:不管是添加元素还是删除元素,都会重新分配下标
    del和remove是删除,而pop是移动到其他地方了,可以单独在保存起来

    1.del 语句

    del可以删除任何数据
    del 列表[下标]:删除列表中指定下标的元素(注意:下标不可以越界)

    films=['肖生克的救赎','阿甘正传','赌圣','摔跤吧爸爸','我不是药神','逃学威龙','英雄本色','赌圣']
    del films[1]
    print(films)  
     #['肖生克的救赎','赌圣', '摔跤吧爸爸', '我不是药神', '逃学威龙', '英雄本色', '赌圣']
    

    2.remove方法

    列表.remove(元素):删除列表中指定的元素

    注意:若列表中有多个同一元素,就删除从左往右数的第一个该元素
    注意:如果要删除的元素不再列表中,会报错

    films.remove('赌圣')
    print(films)   
     #['肖生克的救赎', '摔跤吧爸爸', '我不是药神', '逃学威龙', '英雄本色', '赌圣']
    
    

    3.pop方法

    列表.pop():将列表中的最后一个元素取出来
    列表.pop(下标):将列表中指定下标的元素取出来 (
    注意:下标不可以越界8)*

    film=films.pop()
    print(films,film)
    #['肖生克的救赎', '摔跤吧爸爸', '我不是药神', '逃学威龙', '英雄本色']
    # ['肖生克的救赎', '摔跤吧爸爸', '我不是药神', '逃学威龙', '英雄本色'] 赌圣
    
    film=films.pop(1)
    print(films,film)
    # ['肖生克的救赎', '摔跤吧爸爸', '我不是药神', '逃学威龙', '英雄本色'] 赌圣
    # ['肖生克的救赎', '我不是药神', '逃学威龙', '英雄本色'] 摔跤吧爸爸
    
    

    练习:#scores = [23, 45, 45, 78,32,90, 89,1],删除所有小于60分的成绩

    scores = [23, 43, 45, 78, 32, 90, 89, 10, 9, 1]
    
    # [23, 43, 45, 78, 32, 90, 89, 10, 9, 1]  23  1
    # [43, 45, 78, 32, 90, 89, 10, 9, 1] 45 2
    # [43,78, 32, 90, 89, 10, 9, 1]  32 3
    # [43,78,90, 89, 10, 9, 1] 89 4
    # [43,78,90, 89, 10, 9, 1] 10 5
    # [43,78,90, 89, 9, 1]  1 6
    # [43,78,90, 89, 9]
    
    #new_score = score[:]
    #for item in new_score:
    
    for item in scores[:]:
        if item < 60:
            scores.remove(item)    
    print(scores)
    

    5.修改元素(1种)

    列表名[下标]=新的值
    通过下标获取运算,然后赋值,(下标不可以越界)

    names=['金秀贤','张家辉','刘德华','迪丽热巴']
    names[3]='易烊千玺'
    print(names)   #['金秀贤', '张家辉', '刘德华', '易烊千玺']
    

    6.列表的其他操作

    (1)len(列表):获取列表的长度(元素的个数)
    (2)列表1+列表2:让列表1和列表2的元素组合在一起后产生一个新的列表
    (3)列表*数字:让列表中的元素重复N次,然后 产生一个新的列表
    (4)in 和 not in操作
    元素 in 列表:判断指定的元素是否在指定的列表中--->值是布尔值(True,False
    元素 not in列表:判断指定元素是否不在指定的列表中--->值是布尔值(True,False)

    print(len([1,2,3,4]))          #4
    print(len(names))           #4
    
    new_names=names+['周杰伦','王力宏']
    print(new_names)        #['金秀贤', '张家辉', '刘德华', '易烊千玺', '周杰伦', '王力宏']
    
    print([1,2]*2)            #[1, 2, 1, 2]
    
    result='王俊凯' not in names
    print(result)         #True
    

    7.获取列表中的最大最小元素

    max(列表)
    min(列表)

    print(max([1,2,3,0,122]))   #122
    print(min(['a','b','dss']))   #a
    

    例:获取一个数字列表中的最大值

    numbers=[1,2,24,53,445,0]
    # print(max([1,2,24,53,445,0]))   #445
    max1=numbers[0]
    for item in numbers:
        if item>max1:
            max1=item
    print(max1)  #0
    

    8.获取列表中出现的次数

    count:获取元素在列表中出现的次数

    numbers=[-1,2,24,53,445,0]
    print(numbers.count(-1))   #1
    

    9.extend

    列表.extend(序列):将列表中的每个元素,添加到列表中

    names.extend(['王祖贤'])
    print(names)   #['金秀贤', '张家辉', '刘德华', '易烊千玺', '王祖贤']
    
    

    10.index

    列表.index(元素):获取指定元素在指定列表中的索引(如果元素有多个,则取第一个)

    print(names.index('张家辉'))    #1
    

    11.reverse()

    列表.reverse():反向列表中的元素(直接操作原来列表,不会产生新的列表)

    numbers=[1,2,3,4]
    new_numbers=numbers.reverse()
    print([numbers,new_numbers])   #[[4, 3, 2, 1], None]
    

    12.sort

    列表.sort():对列表进行排序 (升序排)

    numbers=[1,23,42,31,65,0,48]
    numbers.sort()   #(升序)
    print(numbers)   #[0, 1, 23, 31, 42, 48, 65]
    
    numbers.sort(reversed=True)
    print(numbers)   #(降序)
    

    13.clear

    列表.clear(): 清空列表中的元素

    numbers.clear()
    # numbers = []  # 效果同上
    print(numbers)
    

    14.copy

    7.列表.copy(): 将列表中的元素全部拷贝一份创建一个新的列表

    names = ['张三', '李四']
    # new_names1 = names.copy()
    new_names1 = names[:]
    print(new_names1)
    

    注意:通过一个列表变量给另一个列表变量赋值的时候,赋的是地址;两个列表对元素进行操作的时候会相互影响。 想要避免这个问题就使用copy或者切片

    相关文章

      网友评论

        本文标题:列表 (list)

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