Python笔记 - 列表

创建列表

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

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 > list2
False

 

2.逻辑操作符

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

 

3.拼接操作符(+)

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

list1 = [1,2]
list2 = [3]
list3 = list1 + list2
print(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 list1
True
>>> 'Sweet' in list1
False
>>> 'Sweet' not in list1
True

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

>>> list1 = ['Mr',['Shirley','Sweet'],123]
>>> 'Shirley' in list1
False
>>> '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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值