python基础课程系列(二)

3.2.修改、添加和删除元素
你创建的大多数列表都将是动态的,这意味着列表创建后,将随着程序的运行增删元素。例如,你创建一个游戏,要求玩家射杀从天而降的外星人;为此,可在开始时将一些外
星人存储在列表中,然后每当有外星人被射杀时,都将其从列表中删除,而每次有新的外星人出现在屏幕上时,都将其添加到列表中。在整个游戏运行期间,外星人列表的长度
将不断变化。

3.2.1.修改列表元素
修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值
>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki']
>>> motorcycles[0] = 'ducati'
>>> print(motorcycles)
['ducati', 'yamaha', 'suzuki']

3.2.2.在列表中添加元素
1)在列表末尾添加元素
>>> print(motorcycles)
['ducati', 'yamaha', 'suzuki']
>>> motorcycles.append('honda')
>>> print(motorcycles)
['ducati', 'yamaha', 'suzuki', 'honda']

2)在列表中插入元素
使用方法 insert() 可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。
>>> print(motorcycles)
['ducati', 'yamaha', 'suzuki', 'honda']
>>> motorcycles.insert(2, 'BMW')
>>> print(motorcycles)
['ducati', 'yamaha', 'BMW', 'suzuki', 'honda']

3.2.3.从列表中删除元素
1)使用 del 语句删除元素
如果知道要删除的元素在列表中的位置,可使用 del 语句。你经常需要从列表中删除一个或多个元素。例如,玩家将空中的一个外星人射杀后,你很可能要将其从存活的外星人列表中删除;当用户在你创建的 Web 应用中注销其账户时,
你需要将该用户从活跃用户列表中删除。你可以根据位置或值来删除列表中的元素。
>>> print(motorcycles)
['ducati', 'yamaha', 'BMW', 'suzuki', 'honda']
>>> del motorcycles[2]
>>> print(motorcycles)
['ducati', 'yamaha', 'suzuki', 'honda']

2)使用方法 pop() 删除元素
有时候,你要将元素从列表中删除,并接着使用它的值。例如,你可能需要获取刚被射杀的外星人的 x  和 y  坐标,以便在相应的位置显示爆炸效果;在 Web 应用程序中,你可能
要将用户从活跃成员列表中删除,并将其加入到非活跃成员列表中。
方法 pop() 可删除列表末尾的元素,并让你能够接着使用它。
>>> print(motorcycles)
['ducati', 'yamaha', 'suzuki', 'honda']
>>> popped_motorcycle = motorcycles.pop()
>>> print(motorcycles)
['ducati', 'yamaha', 'suzuki']
>>> print(popped_motorcycle)
honda

3)弹出列表中任何位置处的元素
实际上,你可以使用 pop() 来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
>>> print(motorcycles)
['ducati', 'yamaha', 'suzuki']
>>> first_moto = motorcycles.pop(0)
>>> print(motorcycles)
['yamaha', 'suzuki']
>>> print(first_moto)
ducati

如果你不确定该使用 del 语句还是 pop() 方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用 del 语句;如果你要在删除元
素后还能继续使用它,就使用方法 pop() 。

4)根据值删除元素
有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法 remove() 。
>>> print(motorcycles)
['yamaha', 'suzuki']
>>> motorcycles.remove('yamaha')
>>> print(motorcycles)
['suzuki']

3.3.组织列表
3.3.1.使用方法sort()对列表进行永久性排序
>>> print(cars)
['bmw', 'audi', 'toyota', 'subaru']
>>> cars.sort()
>>> print(cars)
['audi', 'bmw', 'subaru', 'toyota']
>>> cars.sort(reverse = True)
>>> print(cars)
['toyota', 'subaru', 'bmw', 'audi']

3.3.2.使用函数sorted()对列表进行临时排序
>>> print('Here is the original list: %s' % (cars))
Here is the original list: ['bmw', 'audi', 'toyota', 'subaru']
>>> print('Here is the sorted list: %s' % (sorted(cars)))
Here is the sorted list: ['audi', 'bmw', 'subaru', 'toyota']
>>> print('Here is the original list again: %s' % (cars))
Here is the original list again: ['bmw', 'audi', 'toyota', 'subaru']

3.3.3.倒着打印列表
要反转列表元素的排列顺序,可使用方法 reverse() 。
>>> print(cars)
['bmw', 'audi', 'toyota', 'subaru']
>>> cars.reverse()
>>> print(cars)
['subaru', 'toyota', 'audi', 'bmw']

方法 reverse() 永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用 reverse() 即可。

3.3.4.确定列表的长度
使用函数len()可快速获悉列表的长度。
>>> print(cars)
['subaru', 'toyota', 'audi', 'bmw']
>>> len(cars)
4

第4章 操作列表
4.1.遍历整个列表
使用for循环来打印car名单中的所有名字:
>>> print(cars)
['subaru', 'toyota', 'audi', 'bmw']
>>> for car in cars:
    print(car)

subaru
toyota
audi
bmw

编写 for 循环时,对于用于存储列表中每个值的临时变量,可指定任何名称。然而,选择描述单个列表元素的有意义的名称大有帮助。

4.1.2.在for循环中执行更多的操作
在 for 循环中,可对每个元素执行任何操作。
>>> for car in cars:
    print('%s is a car brand !' % car)
    
subaru is a car brand !
toyota is a car brand !
audi is a car brand !
bmw is a car brand !

4.3.创建数值列表
4.3.1.使用函数 range()
Python函数range()让你能够轻松地生成一系列的数字。
>>> for value in range(5):
    print(value)

0
1
2
3
4

>>> for value in range(1, 5):
    print(value)

1
2
3
4

4.3.2.使用range()创建数字列表
要创建数字列表,可使用函数 list() 将 range() 的结果直接转换为列表。
>>> number = list(range(1, 5))
>>> print(number)
[1, 2, 3, 4]

>>> even_number = list(range(2, 11, 2))
>>> print(even_number)
[2, 4, 6, 8, 10]

>>> squares = []
>>> for value in range(1,11):
    square = value ** 2
    squares.append(square)
    
>>> print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

4.3.4.列表解析
前面介绍的生成列表 squares 的方式包含三四行代码,而列表解析让你只需编写一行代码就能生成这样的列表。 列表解析 将 for 循环和创建新元素的代码合并成一行,并自动
附加新元素。
>>> squares = [value ** 2 for value in range(1, 11)]
>>> print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

猜你喜欢

转载自blog.csdn.net/zhaocen_1230/article/details/81230824