Python编程:列表

Python编程:列表

列表是什么

列表由一系列按特定顺序排列的元素组成,可以用来存储多个同类的数据。鉴于列表通常包含多个元素,可以给列表指定一个表示复数的名称。

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

访问列表元素

要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。**在 Python 中,第一个列表元素的索引为 0 ,而不是 1 。**在大多数编程语言中都是如此,这与列表操作的底层实现相关。若列表有3个元素,而你的索引为[3],则会出现错误:IndexError: list index out of range。(索引越界)

>>> bicycles = ['trek', 'cannondale', 'redline', 'specialized']
>>> print(bicycles[0])
trek

修改、添加与删除列表元素

修改列表元素
>>>motorcycles = ['honda', 'yamaha', 'suzuki']
>>>print(motorcycles)
['honda', 'yamaha', 'suzuki']
>>>motorcycles[0] = 'ducati'
>>>print(motorcycles)
['ducati', 'yamaha', 'suzuki']
在列表中添加元素
  • 最简单的方式是将元素附加到列表末尾,使用的是方法 append()
  • 使用方法 使用方法 insert() 可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。
>>>motorcycles = ['honda', 'yamaha', 'suzuki']
>>>motorcycles.append('ducati')
>>>print(motorcycles)
['honda', 'yamaha', 'suzuki', 'ducati']
>>>motorcycles.insert(0, 'ducati')
>>>print(motorcycles)
['ducati', 'honda', 'yamaha', 'suzuki','ducati']
删除列表元素
  • 如果知道要删除的元素在列表中的位置,可使用 del 语句。

    del motorcycles[0]
    
  • 有时候,你要将元素从列表中删除,并接着使用它的值。**方法 pop() 可删除列表末尾的元素,并让你能够接着使用它。**例如,你可能需要获取刚被射杀的外星人的 x 和 y 坐标,以便在相应的位置显示爆炸效果;在 Web 应用程序中,你可能要将用户从活跃成员列表中删除,并将其加入到非活跃成员列表中。实际上,你可以使用 pop() 来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。

    >>>motorcycles = ['honda', 'yamaha', 'suzuki']
    >>>popped_motorcycle = motorcycles.pop()
    >>>print(motorcycles)
    ['honda', 'yamaha']
    >>>print(popped_motorcycle)
    suzuki
    
  • 如果你只知道要删除的元素的值,可使用方法 remove()。

    >>>motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
    >>>motorcycles.remove('ducati')
    >>>print(motorcycles)
    ['honda', 'yamaha', 'suzuki']
    

组织列表

sort()方法永久排序

Python 方法 sort() 可以让你对列表按字母排序a到z进行排序。你还可以按与字母顺序相反的顺序排列列表元素,为此,只需向 sort() 方法传递参数 reverse=True。对列表元素排列顺序的修改是永久性的。

>>>cars = ['bmw', 'audi', 'toyota', 'subaru']
>>>cars.sort(reverse=True)
>>>print(cars)
['toyota', 'subaru', 'bmw', 'audi']

sorted() 函数临时排序

函数 sorted() 让你能够按字母排序a到z显示列表元素,同时不影响它们在列表中的原始排列顺序。同样,如果你要按与字母顺序相反的顺序显示列表,也可向函数 sorted() 传递参数 reverse=True 。

反转列表

要反转列表元素的排列顺序,可使用方法 reverse()。注意, reverse() 不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序。

获取列表长度

使用函数 len() 可快速获悉列表的长度。

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

操作列表

遍历列表

用for循环可以遍历列表。

>>>magicians = ['alice', 'david', 'carolina']
>>>for magician in magicians: #将magicians列表中的元素逐个放入magician
>>>  print(magician) #缩进行表示要执行循环的语句,循环到magicians中没有元素为止
alice
david
carolina

创建数值列表

在项目中经常需要存储大量的数据,例如用户的成绩。列表非常适合用于存储数字集合,而 Python 提供了很多工具,可帮助你高效地处理数字列表。

range()函数
>>>for number in range(1,5):
>>>  print(number)
1
2
3
4

注意:在这个示例中,range() 只是打印数字 1~4,这是你在编程语言中经常看到的差一行为的结果。函数 range() 让 Python 从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值(这里为5)。

使用range()函数创建列表

list() 函数可使range()的结果直接转换为列表。如果将 range() 作为 list() 的参数,输出将为一个数字列表。

>>>numbers=list(range(1,5))
>>>print(numbers)
[1,2,3,4]

使用函数 range() 时,还可指定步长。例如,下面的代码打印 1~10 内的偶数:

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

列表解析

列表解析将 for 循环和创建新元素的代码合并成一行,并自动附加新元素。

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

切片

有时你可以处理列表的部分元素 ——Python 称之为切片。

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。如下就是打印列表的从索引0到2的运动员。

>>>players = ['charles', 'martina', 'michael', 'florence', 'eli']
>>>print(players[0:3])
['charles', 'martina', 'michael']

注意:

  1. 如果你没有指定第一个索引, Python 将自动从列表开头开始。

  2. 如果你没有指定最后一个索引, Python 将自动遍历到列表结尾。

  3. 如果你要输出名单上的最后三名队员,可使用切片 players[-3:]

复制列表

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引( [:] )。

>>>my_foods = ['pizza', 'falafel', 'carrot cake']
>>>friend_foods = my_foods[:]

这种操作是建立了my_food列表的一个副本赋予给friend_foods,并没有改变原始列表my_foods。

不同于将my_foods 直接赋给 friend_foods ,就不能得到两个列表。

>>>friend_foods=my_foods

这种语法实际上是让 Python 将新变量 friend_foods 关联到包含在 my_foods 中的列表,因此这两个变量都指向同一个列表

元组

定义元组

列表是可以修改的,适合于存储运行过程中动态变化的数据集。然而,有时候你需要创建一系列不可修
改的元素。 **Python 将不能修改的值称为不可变的 ,而不可变的列表被称为元组 。**如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。

元组看起来犹如列表,但使用圆括号而不是方括号来标识。例如,如果有一个大小不应改变的矩形,可将其长度和宽度存储在一个元组中,从而确保它们是不能修改的:

>>>dimensions = (200, 50)
>>>print(dimensions[0])
>>>print(dimensions[1])
200
50

这时我们如果对它进行修改,就会出现’tuple’ object does not support item assignment错误。

>>>dimensions[0] = 250
TypeError: 'tuple' object does not support item assignment
修改元组变量

虽然不能修改元组的元素,但可以给存储元组的变量赋值。

>>>dimensions = (400, 100)
>>>print("\nModified dimensions:")
>>>for dimension in dimensions:
>>>	  print(dimension)
400
100

设置代码格式

对于一个程序员,读代码的时候比写代码的时候多。为了提升代码的可读性,避免一个人写的代码只有ta自己读得懂的情况, Python 程序员都遵循一些格式设置约定。Python 改进提案 ( Python Enhancement Proposal , PEP )是最古老的 PEP 之一,它向 Python 程序员提供了代码格式设置指南。PEP8网址

  1. PEP 8 建议每级缩进都使用四个空格
  2. 很多 Python 程序员都建议每行不超过 80 字符
  3. 要将程序的不同部分分开,可使用空行。你应该使用空行来组织程序文件,但也不能滥用。例如,如果你有 5 行创建列表的代码,还有 3 行处理该列表的代码,那么用一个空行将这两部分隔开是合适的。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值