美文网首页
Python学习笔记五·列表的常见操作(二)

Python学习笔记五·列表的常见操作(二)

作者: ReiChin_ | 来源:发表于2018-04-11 10:05 被阅读0次

    本节主要介绍数字列表的操作。

    一、定义数字列表

    和普通列表的定义方式相同,直接使用[]即可。也可以使用range()函数来定义。

    number = list(range(1, 11)) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    

    注意:2.x中range()的类型是list,3.x中range()的类型是range,因此在使用range()定义列表时,最好加入list()函数。
    也可以通过乘法的方式定义列表。

    image.png

    二、max、min、sum函数

    number = [2, 2, 0, 3, 5, 9, 8]
    print min(number) # 最小值
    print max(number) # 最大值
    print sum(number) # 求和
    
    image.png
    思考:用一行代码实现1-100的和
    print sum(list(range(1, 101)))
    

    三、分片赋值

    需求一:将列表[1, 5]修改为[1, 2, 3, 4, 5]

    number = [1, 5]
    print number
    # 当start和stop的索引相等时,即在该索引处为list进行分片赋值
    number[1:1] = [2, 3, 4]
    print number
    
    image.png
    需求二:将列表[1, 2, 3, 4, 5]修改为[1, 5]
    number = [1, 2, 3, 4, 5]
    print number
    # 当赋空值时,会清空start和stop索引之间的数据,包括start不包括stop
    number[1:4] = []
    print number
    
    image.png

    需求三:改变列表index后的值

    str_list = ["Hello", "word!"]
    print str_list
    # 修该str_list索引1后的值
    str_list[1:] = ["Python!", "I", "love", "Python!"]
    print str_list
    
    image.png

    四、count函数

    count用于统计某个元素在列表中出现的次数。

    str_list = ['and', 'or', 'hello', 'to', 'in', 'hello', 'and', 'hello']
    print str_list.count('hello')   # 3
    
    number = [1, 2, 3, 4, 1, 5]
    print number.count(1) # 2
    
    image.png

    再来一个复杂的列表

    number = [1, [1, 2], [1], [2, 1, [1, 2], 1], 1]
    print number.count(1) # 2
    print number.count([1]) # 1
    print number.count([1, 2]) # 1
    print number[3].count(1) # 2
    
    • 第一行print语句统计number中元素1出现的次数,在number中只有第0位第4位才是1,因此统计结果是2
    • 第二行print语句统计number中元素[1]出现的次数,在number中只有第2位才是[1],因此统计结果是1
    • 第三行print语句统计number中元素[1, 2]出现的次数,在number中只有第1位才是[1, 2],因此统计结果是1
    • 第四行print语句统计number[3]中元素1出现的次数,number[3]的值为[2, 1, [1, 2], 1],在number[3]中只有第1位第3位才是1,因此统计结果是2

    运行结果如下:


    image.png

    五、extend函数

    extend函数用于在列表的末尾追加一个新的列表。

    number_a = [1, 2, 3]
    number_b = [4, 5, 6]
    number_a.extend(number_b)
    print number_a # [1, 2, 3, 4, 5, 6]
    
    image.png
    另外,也可以用连接操作实现extend的效果,但是连接操作是用两个列表的副本进行连接,会生成一个新的列表,而不改变原来的列表,如果再使用number_a += number_b去改变原列表的值,效率比extend较低。
    number_a = [1, 2, 3]
    number_b = [4, 5, 6]
    print number_a + number_b # [1, 2, 3, 4, 5, 6]
    print number_a # [1, 2, 3]
    
    image.png
    当然我们也可以使用分片赋值的方法实现extend的效果,但是代码的可读性不如extend
    number_a = [1, 2, 3]
    number_b = [4, 5, 6]
    number_a[len(number_a):] = number_b
    print number_a # [1, 2, 3, 4, 5, 6]
    
    image.png

    六、index

    index用于从列表中找出某个元素第一次匹配项的索引位置。

    str_list = ['how', 'do', 'you', 'do']
    print str_list.index('do') # 1
    
    image.png
    注意:当找不到时会报异常
    str_list = ['how', 'do', 'you', 'do']
    print str_list.index('hello')
    
    image.png

    相关文章

      网友评论

          本文标题:Python学习笔记五·列表的常见操作(二)

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