Python笔记

来源:互联网 发布:淘宝学校哪家好 编辑:程序博客网 时间:2024/06/04 00:37

创建列表

列表中元素以逗号隔开并且以中括号([])将他们括起来

1.空列表

empty = []

2.纯字符串(数字)组成的列表

member = ['A','B','C']

3.混合列表

mix = ['A‘,120,[1,2]]

向列表中插入新元素

1.append()函数

语法:列表.append(新元素)

append()函数需要一个参数,该参数将作为一个元素加入到列表的末尾,此函数无返回值
注意:append()不能同时添加多个元素,否则报错

Hello = ['Nice','to','meet']Hello.append('U')print(Hello)   # 结果为:['Nice', 'to', 'meet', 'U']

 

2.extend()函数

语法:列表.extend(要加入的列表)

需要一个参数,但是这个参数是一个列表,通过这个函数可以将此列表内的元素加到目标列表末尾,此函数无返回值

Hello = ['Nice','to','meet']newlist = ['U','too']Hello.extend(newlist)print(Hello)# 结果为:['Nice', 'to', 'meet', 'U', 'too']

 

3.insert()函数

调用形式为:列表.insert(位置,元素)

insert()函数允许用户将加入的元素放置到任何位置,因此它需要两个参数,第一个是新元素在列表中的位置,第二个为该元素,

member = ['芳芳','琪琪','莎莎'] member.insert(0,'Sweet')# 结果为: ['Sweet', '芳芳', '琪琪', '莎莎']

通过索引值获得列表中元素

Hello = ['Nice','to','meet']print(Hello[0])  # 获取第一个元素

其中,0 是索引值,索引值从0开始计数


从列表中删除元素的方法

1.remove()函数

参数为一个元素,移除列表中某个值的第一个匹配项
注:该方法没有返回值,如果输入的元素不在列表中,则程序报错

Hello = ['Nice','to','meet']Hello.remove('to')  # 结果为:['Nice','meet']print(Hello)

若再次执行Hello.remove(‘to’),由于该元素已经不存在此列表中,执行此操作将会报错
 

2.del 语句

  • 通过索引值删除元素
  • del 直接添加列表名,则删除整个列表
Hello = ['Nice','to','meet']del Hello[2]   print(Hello)   #结果为:['Nice','to']del Hello    # 删除整个列表

 

3.pop()方法

语法:list.pop(参数)

无参数,默认移除列表中的最后一个元素,并且返回该元素的值。
有参数,参数为索引值,删除对应的元素,并返回所删除的值

member = ['芳芳','琪琪','莎莎']print(member.pop())   # 输出:'莎莎'print(member)         # 输出:['芳芳','琪琪']print(member.pop(0))  # 输出:'芳芳'

列表分片(slice)

用于从列表取出多个元素
格式:列表名[开始索引:结束索引:步长]
备注:
1.切片方法是包前不包后的(也就是结束索引位置的元素不包含在内)
2.左右索引值及步长均可以省略,开始索引值省略,默认从0开始;结束索引值省略,默认包含左索引值右边的所有元素;步长省略,默认为1。

Hello = ['Nice','to','meet','U','too']      split1 = Hello[1:3]  # split1为: ['to','meet']                      split2 = Hello[:4]   # split2为: ['Nice','to','meet','U']           split3 = Hello[2:]   # split3: ['meet','U','too']               split4 = Hello[:],  # split4:['Nice','to','meet','U','too'],表示原列表的拷贝

另外,需要注意的是:python支持负数索引,-1相当于列表中右侧第一个元素值,以此类推。
步长也允许为负值时,表示从后面的元素向前数

Hello = ['Nice','to','meet','U','too'] split5 = Hello[4:2:-1]    # split5: ['too', 'U']split6 = Hello[-4:-1:1]   # split6: ['to', 'meet', 'U']

列表拷贝

1.直接赋值

直接赋值后,相当于给列表一个新的标签,对其中一个作增、删、改操作时,都会发生改变

>>> list1 = [1,2,3,4]>>> list2 = list1   # 直接将list1的值赋值给list2>>> list1[1, 2, 3, 4]>>> list2[1, 2, 3, 4]>>> list2.pop()   # 对list2进行删除操作4>>> list1[1, 2, 3]>>> list2[1, 2, 3]

 

2.分片操作

分片操作获得的列表拷贝,除了内部元素一样之外两个列表没有任何联系

>>> list1[1, 2, 3]>>> list2[1, 2, 3]>>> list1 = [1,2,3,4,5]>>> list2 = list1[:]    # 分片获得列表的拷贝>>> list1[1, 2, 3, 4, 5]>>> list2[1, 2, 3, 4, 5]>>> list1.pop()    # 删除列表1最后的元素5>>> list2      # 列表2未发生改变[1, 2, 3, 4, 5]

 

3.copy() 函数

语法:列表.copy()

>>> list1 = [5,4,3,2,1]>>> list2 = list1.copy()   # 获取列表的拷贝,与切片一致>>> list1[5, 4, 3, 2, 1]>>> list2[5, 4, 3, 2, 1]>>> list1.pop()1>>> list2[5, 4, 3, 2, 1]

列表中一些常用的操作符

1.比较操作符

列表可比较大小,在Python中会直接取两个数组的第0个元素进行比较,如果相等则继续对列表下一个元素进行比较。
注意:元素的值必须符合比较运算符的适用范围,例如:数字或字符

>>> list1 = [222,333]>>> list2 = [333,222]>>> list1 > list2False

 

2.逻辑操作符

>>> list1 = [222,444]>>> list2 = [444,222]>>> list3 = [222,444]>>> (list1 < list2) and (list1 == list3)True

 

3.拼接操作符(+)

拼接操作符连接两个列表中的元素,+号两边必须都是列表

list1 = [1,2]list2 = [3]list3 = list1 + list2print(list3)   # 结果为:[1, 2, 3]

 

4.重复操作符(*)

>>> list1 = [1,2,3]>>> list1 * 3[1, 2, 3, 1, 2, 3, 1, 2, 3]

 

5.成员关系操作符

用in 和 not in 判断参数是否在列表中

>>> list1 = ['Mr','Shirley']>>> 'Mr' in list1True>>> 'Sweet' in list1False>>> 'Sweet' not in list1True

需要注意的是:in 和 not in只能访问属于列表同一层的元素;
如果需要访问里层的元素,可进行如下操作

>>> list1 = ['Mr',['Shirley','Sweet'],123]>>> 'Shirley' in list1False>>> 'Shirley' in list1[1]    # 访问里层的元素True

因此,可以看出访问列表中列表的元素可用:list1[1][0]方法


列表的内置方法

 

1.查看列表的BIF,使用dir(list)

dir(list)# 输出为:['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

 

2.clear() 函数

用于删除列表中的所有元素,形成一个空的列表

>>> list1 = [1,2,3,4]>>> list1.clear()>>> list1[]

 

3.copy()函数

获得列表的拷贝,会在内存中重新申请一个空间并存放列表的值

 

4.count()函数

语法:str.count(sub, start= 0,end=len(string))

用于统计参数在列表中出现的次数,有三个参数,第一个参数为需要统计的元素,第二个参数是开始搜索的位置,第三个参数是结束搜索的位置

>>>list1 = [1,3,6,3,1,62,1,54,23,1]>>> list1.count(1)4

 

5.index()函数
语法:str.index(str, beg=0, end=len(string))

用于寻找所输入参数在列表中的第一个位置并返回该位置值,该方法有三个参数,第一个表示指定检索的元素,第二个表示开始索引,第三个表示结束索引

>>> list1 = [1,3,6,3,1,62,1,54,23,1]>>> list1.index(3)1>>> list1.index(99)    # 传入不存在的元素,报错Traceback (most recent call last):  File "<pyshell#24>", line 1, in <module>    list1.index(99)ValueError: 99 is not in list

 

6.reverse()函数

语法:list.reverse()

用于反向列表中元素,此方法无返回值,只会对列表进行翻转

>>> list1 = [1,2,3,4]>>> list1.reverse()>>> list1[4, 3, 2, 1]

6.sort()函数
list.sort([func])

用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

未指定参数:

>>> list1 = [1,5,2,7,4,9]>>> list1.sort()    # 未指定参数>>> list1[1, 2, 4, 5, 7, 9]

reverse = False

>>> list1 = [1,5,2,7,4,9]>>> list1.sort(reverse = False)  # 正向排序>>> list1[1, 2, 4, 5, 7, 9]

reverse = True

>>> list1 = [1,5,2,7,4,9]>>> list1.sort(reverse = True)  # 反向排序>>> list1[9, 7, 5, 4, 2, 1]

列表推导式/列表解析简介

列表推导式(list comprehensions)也叫列表解析,用来动态创建列表.

>>> list1 = [x**2 for x in range(10)]>>> list1[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]