练习内容包括

创建并访问列表

列表的索引

使用列表中的各个值

修改列表中的元素

在列表中添加元素 append()

在列表中插入元素 insert()

在列表中删除元素 del,pop()

根据值删除列表中的元素 remove()

对列表中的元素进行排列

  1)永久性修改 sort(),按字母表正向排列

  2)永久性修改 sort(reverse=True),按字母表反向排列

  3)临时修改 sorted(),按字母表正向排列

对列表中的元素进行反转打印 reverse()

计算列表长度 len()



Python中的列表,什么是列表?

列表由一系列按特定顺序排列的元素组成,通常列表包含多个元素。

创建并访问元素列表

-------------------------------------------------------------

bicycles = [ 'trek', 'cannondale', 'redline', 'specialized' ]
print(bicycles)
print(bicycles[0])
print(bicycles[0].title())
-------------------------------------------------------------

['trek', 'cannondale', 'redline', 'specialized']

trek

Trek

-------------------------------------------------------------


#1 打印 bicycles 列表,显示全部列表

#2 bicycles[0] 这个 0 表示打印 bicycles 列表中索引位置为 0 的元素

#3 用上前面学过的内容,打印并且首字母大写



索引

索引是从 0 开始,而不是 1。不光是 Python,大多数编程语言都是如此。

访问列表中的第一个和第四个元素,可以使用索引 1和3。

-------------------------------------------------------------

bicycles = [ 'trek', 'cannondale', 'redline', 'specialized' ]
print(bicycles[1])
print(bicycles[3])
-------------------------------------------------------------

cannondale

specialized

指定 –1 为访问列表中的最后一个元素,同理 –2 代表访问倒数第二个元素

------------------------------------------------------------

bicycles = [ 'trek', 'cannondale', 'redline', 'specialized' ]
print(bicycles[-1])
print(bicycles[-3])
------------------------------------------------------------

specialized

cannondale



使用列表中的各个值

------------------------------------------------------------

bicycles = [ 'trek', 'cannondale', 'redline', 'specialized' ]

message = "My first bicycle was a " + bicycles[0].title() + "."
print(message)
-------------------------------------------------------------
My first bicycle was a Trek.


修改列表元素
直接修改列表中的第一个元素。
---------------------------------------------
motorcycles = [ 'honda', 'yamaha', 'suzuki']
print(motorcycles)

motorcycles[0] = 'ducati'
print(motorcycles)
---------------------------------------------

['honda', 'yamaha', 'suzuki']

['ducati', 'yamaha', 'suzuki']



在列表中添加元素

--------------------------------------------

motorcycles = [ 'honda', 'yamaha', 'suzuki']
print(motorcycles)

motorcycles.append('ducati')
print(motorcycles)
--------------------------------------------

['honda', 'yamaha', 'suzuki']

['honda', 'yamaha', 'suzuki', 'ducati']


.append() 可以在列表的添加元素,不影响列表本身的顺序

定义一个空列表,依次添加元素,并打印该列表

----------------------------

motorcycles = []

motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')

print(motorcycles)
-----------------------------
['honda', 'yamaha', 'suzuki']


在列表中插入元素
在 motorcycles 列表中插入 ducati,插入位置的索引值为 0
---------------------------------------------
motorcycles = [ 'honda', 'yamaha', 'suzuki' ]

motorcycles.insert(0, 'ducati')
print(motorcycles)
---------------------------------------------
['ducati', 'honda', 'yamaha', 'suzuki']


从列表中删除元素(del)
指定列表中索引值为 0 的元素
指定索引值可以删除,但是指定列表中的元素就无法删除
使用 del 语句可以删除任何位置的列表元素,条件是知道其索引,删除后将无法访问
---------------------------------------------
motorcycles = [ 'honda', 'yamaha', 'suzuki' ]
print(motorcycles)

del motorcycles[0]
print(motorcycles)
----------------------------------------------

['honda', 'yamaha', 'suzuki']

['yamaha', 'suzuki']



从列表中删除元素(pop())
pop()默认删除列表中的最后一个元素,和 del 不同的是被删除的元素还可以继续使用。
---------------------------------------------
motorcycles = [ 'honda', 'yamaha', 'suzuki' ]
print(motorcycles)

popped_motorcycle = motorcycles.pop()
#定义被删除的元素
print(motorcycles)
#打印已经被删除后的列表
print(popped_motorcycle)
#打印被删除的元素
---------------------------------------------

['honda', 'yamaha', 'suzuki']

['honda', 'yamaha']

suzuki


实例:打印最后购买的摩托车

---------------------------------------------------------------------

motorcycles = [ 'honda', 'yamaha', 'suzuki' ]

last_owned = motorcycles.pop()
print("The last motorcycle I owned was a " + last_owned.title() + ".")
----------------------------------------------------------------------
The last motorcycle I owned was a Suzuki.


pop()函数也可以指定索引值进行打印
-----------------------------------------------------------------------
motorcycles = [ 'honda', 'yamaha', 'suzuki' ]

first_owned = motorcycles.pop(0)
print("The first motorcycle I owned was a " + first_owned.title() + ".")
------------------------------------------------------------------------
The first motorcycle I owned was a Honda.


根据值删除元素 remove()

从列表 motorcycles 中删除值 ’ducati’
-------------------------------------------------------
motorcycles = [ 'honda', 'yamaha', 'suzuki', 'ducati' ]
print(motorcycles)

motorcycles.remove('ducati')
print(motorcycles)
--------------------------------------------------------

['honda', 'yamaha', 'suzuki', 'ducati']

['honda', 'yamaha', 'suzuki']



被 remove() 删除后的元素还是可以被调用的

------------------------------------------------------------------

motorcycles = [ 'honda', 'yamaha', 'suzuki', 'ducati' ]

print(motorcycles)

too_expensive = 'ducati'

# 先将要删除的元素定义一个变量

motorcycles.remove(too_expensive)

# remove()删除

print(motorcycles)

print("\nA " + too_expensive.title() + " is too expensive for me.")

-------------------------------------------------------------------

['honda', 'yamaha', 'suzuki', 'ducati']

['honda', 'yamaha', 'suzuki']

A Ducati is too expensive for me.



使用 sort() 对列表进行永久性排序

正向排序 sort()

反向排序 sort(reverse=True)

sort()函数会对列表进行永久性排序,排序规则为字母表顺序
--------------------------------------------
cars = [ 'bmw', 'audi', 'toyota', 'subaru' ]
cars.sort()

print(cars)
--------------------------------------------
['audi', 'bmw', 'subaru', 'toyota']

还可以在 sort() 函数中添加  参数,进行与字母表相反的排列顺序,同样也是永久的
--------------------------------------------
cars = [ 'bmw', 'audi', 'toyota', 'subaru' ]
cars.sort(reverse=True)

print(cars)
--------------------------------------------
['toyota', 'subaru', 'bmw', 'audi']


使用 sorted() 对列表进行临时排序
--------------------------------------------
cars = [ 'bmw', 'audi', 'toyota', 'subaru' ]

print("Here is the original list:")
print(cars)

print("\nHere is the sorted list:")
print(sorted(cars))

print("\nHere is the original list agein:")
print(cars)
--------------------------------------------

Here is the original list:

['bmw', 'audi', 'toyota', 'subaru']

Here is the sorted list:

['audi', 'bmw', 'subaru', 'toyota']

Here is the original list agein:

['bmw', 'audi', 'toyota', 'subaru']



反转打印列表(永久性修改)
是按照列表中元素顺序的相反顺序打印,而不是字母的相反顺序打印
--------------------------------------------
cars = [ 'bmw', 'audi', 'toyota', 'subaru' ]
print(cars)

cars.reverse()
print(cars)
--------------------------------------------

['bmw', 'audi', 'toyota', 'subaru']

['subaru', 'toyota', 'audi', 'bmw']



len()确定列表的长度

这个长度指的是列表中包含有几个元素

--------------------------------------------

cars = [ 'bmw', 'audi', 'toyota', 'subaru' ]
print(len(cars))
--------------------------------------------
4