目录

  • 1 前言
    • 1.1  Python解释器安装
    • 1.2  PyCharm开发环境
  • 2 Python程序设计实验
    • 2.1  实验1 基本输入输出
    • 2.2  实验2 基本运算
    • 2.3  实验3 字符串处理
    • 2.4  实验4 列表与元组应用
    • 2.5  实验5 列表与元组应用
    • 2.6  实验6 字典与集合应用
    • 2.7  实验7 函数应用1
    • 2.8  实验8 函数应用2
    • 2.9  实验9 类的创建与应用
    • 2.10  实验10 模块应用
    • 2.11  实验11 文件操作
    • 2.12  实验12 异常处理
    • 2.13  实验13 使用正则表达式
    • 2.14  实验14 tkinter基础应用
  • 3 学习参考
    • 3.1  1 Python及其IDLE环境
    • 3.2  2 Python代码规范
    • 3.3  3 使用变量
    • 3.4  4 输入输出
    • 3.5  5 运算符
    • 3.6  6 字符串
    • 3.7  7 条件语句
    • 3.8  8 循环语句
    • 3.9  9 列表
    • 3.10  10 元组
    • 3.11  11 字典
    • 3.12  12 集合
    • 3.13  13 自定义函数
    • 3.14  14 内置函数
    • 3.15  15 类的创建和使用
    • 3.16  16 类的继承与多态
    • 3.17  17 time模块
    • 3.18  18 os模块
    • 3.19  19 random模块
    • 3.20  20 文件
    • 3.21  21 错误与异常处理
 9 列表

一、创建列表

1、使用方括号创建列表。

   a=[ ]  #创建空列表

   a=[1,3,6,8]  #创建非空列表

2、使用list函数创建列表

   a=list( )      #创建空列表

   a=list("abc")    #得到列表["a","b","c","d"]

3、使用推导式生成列表

   a=[x for x in range(6)]

   b=[3*x for x in a]

***推导式格式:  [生成元素的表达式 for 循环变量 in 可迭代对象 if 条件]

4、使用字符串的split方法生成列表

   a="1,2,30,40"

   b=a.split(",")      #用逗号分割字符串为列表。b=["1","2","30","40"]

   c=a.split(",",2)    #仅得到前2项,其余项为第3项。c=["1","2","30,40"]

二、列表操作符

1、索引[ ]

   a=[1,2,3,4]

   b=a[0]+a[-1]   #通过索引读取列表项

   a[-2]=6            #可改变列表项的值

2、切片[:]

   a=[1,2,3,4]

   b=a[1:]       #b=[2,3,4]

   c=a[1:3]      #c=[2,3]

   d=a[1:-1]     #d=[2,3]

   a[1:3]=[7,8]  #可通过切片对列表部分项进行修改

   k=a[0::2]       #2为步长。k=[1,3]

3、成员运算符(in,not in)

   a=[1,2,3,4]

   则 2 in a为True,2 not in a为False

4、连接运算符+

   a=[1,2]

   b=[3,4]

   c=a+b       #c=[1,2,3,4]

5、重复操作符*

   a=[1]*3      #a=[1,1,1]

6、删除项del

   a=[1,2,3,4,5]

   del a[0::2]   #a=[2,4]

   del a          #删除列表

三、列表的内置函数

1、append(item):在列表末尾追加项item。

    a=[1,2,3,4]

    a.append(5)    #a=[1,2,3,4,5]

    b=[[]]*3          #b=[[ ],[ ],[ ]]

    b[0].append(1) #b=[ [1],[1],[1] ]

注意:通过*生成的列表,项是同一个。

2、count(item):统计项item在列表中出现的次数。

    a=[1,2,1,3,1,4],则a.count(1)的值为3

3、extend(t):在列表末尾添加多个值(t为列表)。

    a=[1,2,3]

    a.extend([4,5])   #a=[1,2,3,4,5]

4、index(value,start,stop):在索引值在start与stop的元素中查找元素value。

如果存在项,则返回第一个匹配项的索引。否则报ValueError异常。

    a=[1,2,1,3],则a.index(1)的值为0

可参考以下代码确定项是否存在,存在时输出项的索引,不存在时输出“No”:

if 4 in a:

    print(a.index(4))

else:

    print("No")

5、insert(index,item):在索引位置index插入项item。

    a=[1,2,3]

    a.insert(1,4)  #a=[1,4,2,3]

6、pop(index):移除索引位置index对应的项并返回移除项的值。

    a=[5,6,7,8]

    b=a.pop(1)  #移除索引为1的项。a=[5,7,8],b=6

    a.pop( )        #移除最后一项

7、remove(item):根据值item移除项。项不存在时报ValueError错误。

    a=[5,6,7,8]

    a.remove(6)    #a=[5,7,8]

8、reverse( ):将列表反向(逆序)。

    a=[1,2,3]

    a.reverse( )   #a=[3,2,1]

9、sort(key,reverse):排序。

参数key可选,指定排序的比较键。

参数reverse可选,为True降序,为False升序(为默认值)。

    a=[2,1,5,3]

则:执行“a.sort( )”后,a=[1,2,3,5]

10、clear( ):清空列表。

    a=[1,2,3],则执行“a.clear( )”后,a=[ ]

11、copy( ):创建列表副本

    a=[1,2,3]

    b=a.copy( )

说明:

----创建的副本ID与原列表的ID是不同的。

----c=a时c与a有相同的ID。

四、列表相关函数

1、len:返回列表项个数。如:

     a=[11,25,30,461],则len(a)的值为4

2、max:返回列表的最大值。要求列表元素类型相同。如:

     a=[21,4,9,11],则max(a)的值为21    

     a="How abcd a 12345"

     x=a.split(" ")

     s=max(x,key=len)   #以长度作为比较函数,求x的最大值

3、min:返回列表的最小值。要求列表元素类型相同。如:

     a=[21,4,9,11],则min(a)的值为4

4、list:将一个可迭代对象转为列表。如:

     a=list("abc"),则a=['a','b','c']

5、sorted:返回排序后的新列表。如:

     a=[2,5,1]

     b=sorted(a)   #b=[1,2,5]。注意!a=[2,5,1]

五、列表排序主要有以下几种方法:

1、使用列表的内置函数sort(key,reverse)

    ---key可选,指定比较函数。

    ---reverse可选,为True降序,为False升序(默认值)。

    ---执行sort排序后,列表id不变,但元素顺序发生了变化。

2、使用python内置函数sorted(key,reverse)

    ---参数作用与sort相同。

    ---排序后,列表并没有变化,函数返回一个排序后的新列表。

六、列表排序的几点说明

1、可由key参数指定排序的比较函数。如:

   a=["abc","de","12345"]

   a.sort(key=len)

   #“key=len”表示按长度排序。故a=["de","abc","12345"]

   a=["12","3","20"]

   a.sort()  #按字母顺序比较:a=["12","20","3"]

   a.sort(key=int)  #按转换后的数值比较:a=["3","12","20"]

2、元素为元组或列表时,不使用key参数,只能对元素的第一元素排序。如:

     a=[[2,1],[3,2],[1,3]]

     a.sort( )  #a=[1,3],[2,1],[3,2]]

3、可以使用key参数对组成列表元素的元组(或列表)按其他元素排序。如:

    x=[(3,1,2),(1,2,3),(4,3,1)]

    x.sort(key=lambda a:a[2])  #按元组的第3个元素排序

    print(x)         #x=[(4, 3, 1), (3, 1, 2), (1, 2, 3)]

    #lambda定义一个匿名函数,用作排序的比较函数。参考自定义函数部分。

4、利用key参数也可实现多重排序。如:

    a=[[5,4,3],[2,4,1],[3,1,6]]

    a.sort(key=lambda x:[x[1],-x[2])  #a=[[3,1,6],[5,4,3],[2,4,1]]

#运行效果:按项的第2个值升序、再按第3个值降序。