列表是什么?
列表是由元素组成。具体一点说就是由一系列按照特定顺序排列的元素组成。
元素之间可以没有任何的关系。
鉴于列表通常包含多个元素,在给列表起名的时候,最好指定一个表示复数的名称。
在Python中用中括号[]表示列表,并用逗号来分隔其中的元素。
举例:创建列表,并用函数print()来打印列表。
names = ['wang','li','zhang','sun','liu']
print (names)
显示如下:
上面截图我们发现,我们在用print()函数进行打印的时候,是将列表的内部表示方法都打印出来了,包括方括号。
其实上面的打印方式不是我们想让用户看到的内容,我们只将列表的内容也就是元素打印出来就行了。所以下面就是我们学习的如何来访问列表。
如何访问列表
访问列表无非就是查看列表中的元素。
列表是一个有序集合。
所以我们要访问列表的任何元素,只需要将该元素的【位置】也就是说的元素【索引】告诉Python即可。
访问列表的方法:
1.指出列表名;
2.再指出元素的索引,并将其放在方括号中。
举例:
names = ['wang','li','zhang','sun','liu']
print (names[3]) #这行代码演示了,访问列表的语法。当这样访问列表元素时,Python只返回该元素,而不包含方括号跟引号。
上面的演示说明:这行代码演示了,访问列表的语法。当这样访问列表元素时,Python只返回该元素,而不包含方括号跟引号。这也是我们要让用户看到的,整洁,干净的结果。
我们还可以对列表中的元素调用前面学习的处理字符串的方法。
举例说明:使用title()方法,让Python输出的字符串更加的美观。
names = ['wang dao','li','zhang','sun','liu']
print (names[0].title())
输出截图如下:
上面通过调用title()方法,让字符串首字母大写,看起来更加的美观。
Python的列表中元素的索引使用0开始,而不是从1开始。
在Python中,第一个列表元素的索引值是0而不是1.在大多数的编程语言中都是如此。这与列表操作的,底层实现相关。
所以上面所说明的就是,在我们访问列表元素时,都将其位置减1就是这个元素的索引。
Python为访问最后一个列表元素,提供了一个特殊的语法。通过将索引指定为-1,就可以让Python返回最后一个列表元素。
举例:
names = ['wang dao','li','zhang','sun','liu']
print (names[-1])
输出结果如下:
这种语法非常有用,因为我们经常需要在不知道列表长度的情况下访问最后的元素。
这种约定也适用于其他的复数索引。例如:索引-2返回倒数第二个列表元素;索引-3返回倒数第三个列表元素。以此类推。
使用列表中的各个值
上面我们学习了如何访问列表元素,那我们如何使用列表元素呢?
其实使用列表元素就像使用变量一样。
例如:可以使用拼接,根据列表中的值来创建消息。
举例:跟列表中的’wang dao’这个人说一句话,邀请他周末来家里做客。
names = ['wang dao','li','zhang','sun','liu']
message = 'Hi 早上好呀,' + ' ' + names[0].title() + ' ' + '周末有时间吗?来我家聚餐哦。'
print (message)
输出的截图如下:
上面我们使用names[0]的值生成了一句话,并将其存储在变量message中,输出是一个简单的句子。
修改,添加,删除列表元素
上面的这个表示是先介绍一下对【单个列表元素】的操作。
我们在实际应用中所创建的大多数列表都将是动态的。
1. 修改列表元素
修改列表元素的语法,与访问列表元素的语法类似。
要修改列表元素分三步:
第一:指定【列表名】
第二:方括号内输入【要修改的列表元素的索引】
第三:再指定该元素的新值
例如:
names = ['wang dao','li','zhang','sun','liu']
print (names)
names[3] = 'zheng'#以此类推,我们可以修改任何列表元素的值。
print (names)
输出截图如下:
- 在列表中添加元素
Python提供了多种在既有列表中添加新元素的方式。
第一种:在列表末尾添加元素。
第二种:在列表任何位置插入元素。
下面分别讲解一下:
第一种,在列表末尾添加元素。
在列表中添加新元素,最简单的方式就是在列表的末尾添加元素。那我们就需要一个方法:append()
举例:将之前的names列表末尾添加一个人’zhao’
names = ['wang dao','li','zhang','sun','liu']
names.append( 'zhao' )
print (names)
**append()**方法的使用,还可以先创建一个空列表,再使用一系列的append()语句,来添加元素。
**这个地方需要注意的是,append()只能单个列表元素添加,不能一次添加好几个。因为append()只接收一个参数 **
names = []
names.append( 'zhao' )
names.append( 'qian' )
names.append( 'sun' )
names.append( 'li ' )
names.append( 'zhou' )
print (names)
输出结果如下:
如果是append()方法里面放了两个参数,就会报错。
names = []
names.append( 'zhao' ,'qian')
print (names)
显示:
报错信息为:TypeError: append() takes exactly one argument (2 given)
中文的意思是:TypeError: append()只接受一个参数(给定2)
第二种:在列表中插入元素
在列表中插入元素也是只能单个插入。使用方法是:insert()
使用insert()方法,可以在列表的任何位置添加新元素。
注意:
insert()方法也可以将新元素放在列表的首位,或者末尾。
如果放在列表的首位:就是:列表名.insert( 0 , ’ 新元素值 ’ )
如果放在列表的末尾:就是:列表名.insert( 任何大于现在列表元素索引值的最大值即可 , ’ 新元素值 ’ )
解释:列表长度+1得出的值 :这句话的意思就是,如果将新的元素值添加到列表末尾,那这个值,只需要大于目前列表的最大值即可。
比方说,列表一共有4个元素,那这个列表的元素最大索引值是3。那么insert()插入的新的列表元素的索引值就是只需比3大即可,比如,4,8,10,100等等都可以。
代码示例:
names = ['li','zhang','sun','liu']
names.insert( 0 , ' wang dao ' )
print ( names )
names = ['wang dao','li','zhang','sun','liu']
names.insert( 5,'qian')
print (names)
输出结果显示如下:
代码示例:
names = ['li','zhang','sun','liu']
names.insert( 0 , ' wang dao ' )
print ( names )
names = ['wang dao','li','zhang','sun','liu']
names.insert( 100,'qian')
print (names)
也能正常输出:
3.从列表中删除元素
我们经常从列表中删除一个或者多个列表元素。
比如:当用户在你创建的web应用中注销其账户时,你需要将该用户从活跃用户列表中删除。
那我们删除列表元素时,可以根据【位置】或者是【列表元素值】来删除。
1,使用del语句删除列表元素。
2.使用方法pop()通过标明列表元素索引,来删除列表元素。
3.使用方法remove()通过标明列表元素值,来删除列表元素。
方法1:
使用del语句删除列表元素。
del语句,可以删除任何位置的列表元素,前提是知道列表元素的索引。
del语句删除列表元素以后,这个被删除的列表元素,就不能再访问了。
示例代码:
names = ['wang dao','li','zhang','sun','liu',' li']
print (names)
del names[1]
print (names)
结果显示:
方法2:
使用方法pop()删除列表元素
这个方法的特点就是,我们使用它删除了列表元素值,但是我们还可以接着使用被我们删除的元素值。
另外这个方法可以删除列表中任何位置的元素。如果给方法pop()一个位置参数,那就是删除指定位置的元素,如果是没有给参数,那pop()方法默认删除列表中最末尾的元素。
示例代码:
names = ['wang dao','li','zhang','sun','liu',' li']
print (names)
popped_name0 = names.pop(2) #弹出列表中指定位置的元素
popped_name1 = names.pop() #弹出列表中最末尾的元素
print (names)
print (popped_name0)
print (popped_name1)
输出的结果显示:
如果你不确定该使用del语句还是使用pop()方法删除元素。那下面是一个简单的判断标准:
如果你要从一个列表中删除元素,且不再以任何的方式使用它,那就使用del语句;
如果你要在删除元素以后还能继续使用它,就是用方法pop()
方法3:根据值删除元素:
有时候,我们不知道要从列表中删除的元素,它的索引位置。我们只知道元素的值,那可使用方法remove()删除。
**
注意:方法remove()只能单个删除元素值,也就是说,这个方法也只能给一个参数。 如果给了两个参数,就会报错:
**
下面是示例代码:
names = ['wang dao','li','zhang','sun','liu',' li']
print (names)
names.remove('li','zhang')
print (names)
报错信息是:
TypeError: remove() takes exactly one argument (2 given)
#这个中文意思就是:TypeError: remove()只接受一个参数(给定2)
注意:另外就是方法remove()删除的元素值,不能再赋值给一个变量使用,不然打印变量时,会显示是空值。
下面是示例代码:
names = ['wang dao','li','zhang','sun','liu',' li']
print (names)
removeed_name = names.remove('li')
print (names)
print (removeed_name)
输出结果是:
['wang dao', 'li', 'zhang', 'sun', 'liu', ' li']
['wang dao', 'zhang', 'sun', 'liu', ' li']
None #这个就表示这个变量值为空。
[Finished in 0.0s]
方法remove()只能删除一次,并且是代码中自上而下第一个指定的值。如果要删除的值可能在列表中出现多次。那就需要使用循环来判断是否删除了所有的值。