zoukankan      html  css  js  c++  java
  • python3知识点之---------列表的介绍

    1.列表是什么?

        它是由一系列特定顺序排序的元素组成。元素可以表示一切任何的事物,元素之间可以没有任何关系。列表用方括号[ ] 表示,元素之间由逗号隔开。

          例如表示一系列数字的列表:  number = [2, 3, 4, 5, 23, 44, 74]

                家庭成员:names = ["Hyan", "Father", "Mom", "Son"]

          列表是可变的,也就是说可以对列表中的元素进行一系列操作。

    2.访问列表

        列表的访问是通过索引(也就是元素的位置,不过第一个位置的索引是从0开始的),表现形式如下:

            number[0] = 2

            names[2] = "Mom"

        但是我想访问部分元素,不止一个元素,这里我们就会用到切片(切片主要用:隔开)先看一下下面的例子:

            number[0:3] = [2, 3, 4]  #这里的意思是从索引0开始访问到索引3的元素(这里强调的是不包括索引3的元素,并且返回的也是一个列表)。

            number[0:6:2] = [2, 4, 23] #这里蓝色的2意思是从索引0开始每隔2个(也就是步长,如果不写,默认为1)访问元素。

            number[:5] = [2, 3, 4, 5, 23] #没有指定起始索引,默认从头开始。

            number[1:] = [ 3, 4, 5, 23, 44, 74] #没有指定末尾索引,从索引为1开始到最后。

        如果你不知道有多个元素,但想知道最后一个元素是啥?可以通过索引-1来访问,如此类推倒数第二个索引为-2

            number[-1] = 74

            number[-2] = 44

            number[-3:] = [23, 44, 74]

        

    3.修改列表元素

        number = [2, 3, 4, 5, 23, 44, 74]

        number[0] = 8 #直接通过索引赋予新的元素值就行

        print("number =",number)

        number = [8, 3, 4, 5, 23, 44, 74]

        number[0:3] =[8, 9, 10] #也可以通过切片的形式修改部分元素

        print("number =",number)

        number = [8, 9, 10, 5, 23, 44, 74]

    4.添加列表元素

       这里就要用到一些内置的方法和函数了

       比如我想在number列表中末尾添加元素88,我们就要用到方法append(),如下所示: 

    1 #!/usr/bin/env python
    2 # encoding: utf-8
    3  
    4 number = [2, 3, 4, 5, 23, 44, 74]
    5 
    6 number.append(88)  #对象与方法之间用点表示,这里的number就是一个对象
    7  
    8 print("number =",number)
    View Code

        结果为:

    number = [2, 3, 4, 5, 23, 44, 74, 88]   

       这时候有人就说了,我不一定要添加到末尾,我要添加到我想要的位置,这个也是可以的,用方法insert(),如下所示: 

    1 #!/usr/bin/env python
    2 # encoding: utf-8
    3 
    4 number = [2, 3, 4, 5, 23, 44, 74]
    5 
    6 number.insert(1, 88) #insert括号内的有两个参数,第一个参数1表示你要放置的索引位>
    7 
    8 print("number =",number)
    View Code

        结果为: 

    number =  [2, 88, 3, 4, 5, 23, 44, 74]

    5.删除列表元素

        ① 如果知道要删除元素的位置,并且这个元素不在需要了,可以用del语句

    1 #!/usr/bin/env python
    2 # encoding: utf-8
    3 
    4 names = ["Hyan", "Father", "Mom", "Son"]
    5 
    6 del names[1]
    7 
    8 print("names =", names)
    View Code

        结果为:

    names = ["Hyan", "Mom", "Son"]

        ② 如果你删除的元素,后面的操作还需要这个元素的话,可以用pop()方法

     1 #!/usr/bin/env python
     2 # encoding: utf-8
     3 
     4 names = ["Hyan", "Father", "Mom", "Son"]
     5 
     6 name = names.pop(2) #pop括号里面的参数,是要删除的该元素的索引值。如果括号内不写,默认为删除最后一个元素
     7 
     8 print("names =", names)
     9 
    10 print(name)
    View Code
        结果为:
    names = ["Hyan", "Father", "Son"]
    
    "Mom"

        ③ 如果你知道你要删除哪个元素,但是不知道该元素所在的位置,可以用remove()方法

     1 #!/usr/bin/env python
     2 # encoding: utf-8
     3 
     4 names = ["Hyan", "Father", "Mom", "Son"]
     5 
     6 name = names.remove("Father") #remove()方法也可以保存删除的元素,为以后可以继续>
     7 
     8 print("names =", names)
     9 
    10 print(name)
    View Code
       结果为:
    names = ["Hyan", "Mom", "Son"]
    
    "Father"

    6.组织列表

        ① 比如说我想给列表排个序,这个排序方式是按ASCII表方式排序的,可使用sort()方法

     1 #!/usr/bin/env python
     2 # encoding: utf-8
     3 
     4 number = [2, 4, 3, 44, 23, 5, 74] 
     5 
     6 number.sort()
     7 print("number =",number)
     8 
     9 number.sort(reverse=True) #括号内的参数表示先按ASCII表方式排序,然后在倒过来显示
    10 print("number_sort_reverse = ", number)
    View Code
       结果为:
    number = [2, 3, 4, 5, 23, 44, 74]
    number_sort_reverse = [74, 44, 23, 5, 4, 3, 2]

    ② 上面所说的方法是永久的改变了列表排序,但是我只想临时排序一下,不想改变原来的列表,这时候我们可以使用sorted()函数

    1 #!/usr/bin/env python
    2 # encoding: utf-8
    3 
    4 number = [2, 4, 3, 44, 23, 5, 74]
    5  
    6 print("number_sorted =",sorted(number))
    7 print("number_sorted_reverse =",sorted(number, reverse=True)) #括号内的参数跟上面一样,先排序再倒过来                                
    8 print("number =",number)
    View Code
       结果为:
    number_sorted = [2, 3, 4, 5, 23, 44, 74]
    number_sorted_reverse = [74, 44, 23, 5, 4, 3, 2]
    number = [2, 4, 3, 44, 23, 5, 74]

    ③ 如果我不想排序,我只想倒着打印列表,这时我们应该用reverse()方法

    1 #!/usr/bin/env python
    2 # encoding: utf-8
    3 
    4 number = [2, 4, 3, 44, 23, 5, 74]
    5 
    6 number.reverse()
    7 
    8 print("number =",number)
    View Code
       结果为:
    number = [74, 5, 23, 44, 3, 4, 2]

    7.其它一些常用的方法

        ① count()方法  计算某元素出现的个数

    1 #!/usr/bin/env python
    2 # encoding: utf-8
    3 
    4 str = ["to", "be", "or", "not", "to", "be"]
    5 
    6 num = str.count("to")
    7 
    8 print("num =", num)
    View Code
       结果为:
    num = 2

    ② extend()方法 用于在列表末尾一次性追加另一个序列中的多个值

    1 #!/usr/bin/env python
    2 # encoding: utf-8
    3 
    4 a = [1, 2, 3]
    5 b = [4, 5, 6]
    6 
    7 a.extend(b)
    8 
    9 print("a =", a)
    View Code
       结果为:
    a = [1, 2, 3, 4, 5, 6]

    ③ index()方法 查找你想要的元素所在位置的索引,如果列表中有相同的元素,只会查到第一个元素。 

    1 1 #!/usr/bin/env python
    2   2 # encoding: utf-8
    3   3
    4   4 a = [1, 2, 3, 4, 5, 6, 2, 4, 11]
    5   5
    6   6 num = a.index(2)
    7   7 print("num =", num)
    View Code
       结果为:
    num = 1

    ④ list()函数,可以将一序列元素转化为列表。

         例如我将创建数字列表,可以用list()range()的结果直接转化为列表。其中,range()函数作用是生成一系列数字。

    1 #!/usr/bin/env python
    2 # encoding: utf-8
    3 
    4 a = list(range(1,10)) #range()函数生成的数字跟索引一样,最后一位元素不包括在内
    5 
    6 print(a)
    View Code
       结果为:
    [1, 2, 3, 4, 5, 6, 7, 8, 9]

    也可以将元组转化为列表的返回值,不改变之前的元组。这里稍微说一下,元组它是不可变的,用圆括号表示,可以用访问列表方式访问它,但不能修改里面的元素

    1 #!/usr/bin/env python
    2 # encoding: utf-8
    3 
    4 names = ("Hyan", "Mom", "Son")
    5 
    6 family = list(names)
    7 
    8 print("names =", names)
    9 print("family =", family)
    View Code
       结果为:
    names = ('Hyan', 'Mom', 'Son')
    family = ['Hyan', 'Mom', 'Son']

     ⑤ copy()函数, 可以复制列表比如:

    1 #!/usr/bin/env python
    2 # encoding: utf-8
    3 
    4 names = ["Hyan", "Mom", "Son"]
    5 
    6 names_copy = names.copy()
    7 
    8 print("names =", names)
    9 print("names_copy =", names_copy)
    View Code

        结果为:

    names = ['Hyan', 'Mom', 'Son']
    names_copy = ['Hyan', 'Mom', 'Son']

        其实我们也可以通过下列方式复制列表:

            names = ['Hyan', 'Mom', 'Son']

            names_copy = names[:] #不需要起始和末尾索引。

            names_copy =  ['Hyan', 'Mom', 'Son']

      

  • 相关阅读:
    2018.7.12训练赛 -K
    winter 2018 02 01 关于模运算的一道题
    debug(实验)
    problem-1003(恢复一下)
    hd acm1466
    hd acm2045
    hd acm 1297
    hd acm1005
    hd acm1425
    概率趣题:三个犯人
  • 原文地址:https://www.cnblogs.com/hyan0913/p/8302379.html
Copyright © 2011-2022 走看看