Python学习(二)列表简介

列表简介

1.列表是什么

列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或
所有家庭成员姓名的列表。也可以将任何东西加人列表中,其中的元素之间可以没有任何关系。
在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。下面是一个简单的
列表示例,这个列表包含几种水果:

fruit = ["apple","banana","pear"]
print (fruit)

结果:

['apple', 'banana', 'pear']

可以看到,直接打印的话,Python将打印列表的内部展示,包括方括号。

那如何访问列表中的元素呢?

1.1访问列表元素

列表时有序集合,因此要访问列表的任何元素,只需要将该元素的位置或索引告诉Python即可。

要访问列表中的元素,可指出列表的名称,再指出元素的索引,并将其放入到[]内。

比如想获取列表中"apple"这一个元素:

fruit = ["apple","banana","pear"]
print (fruit[0])

结果:

apple

当请求获取列表的元素时,Python只返回该元素,而不包括[]和""。

1.2 索引从0开始而不是1

在Python中,第一个列表元素的素引为0,而不是1。在大多数编程语言中都是如此,这与列
表操作的底层实现相关。
第二个列表元素的素引为1。根据这种简单的计数方式,要访问列表的任何元素,都可将其
位置减1,并将结果作为素引。例如,要访问第二个列表元素,可使用素引1。

fruit = ["apple","banana","pear"]
print (fruit[1])
print (fruit[2])

结果:

banana
pear

Pyhon为访问最后一个列表元素提供了一种特殊的语法。通过将索引指定为-1,可让Python返回最后一个列表元素

fruit = ["apple","banana","pear"]
print (fruit[-1])

结果:

pear

这种语法是相当实用的,因为经常需要在不知道列表的长度的情况下访问最后一个元素。同样的-2,-3也会返回列表的倒数第二个,倒数第三个元素,以此类推。

1.3 使用列表中的值

可像其他变量一样使用列表中的值,例如利用列表中的元素拼接一个字符串

fruit = ["apple","banana","pear"]
print (" I like " + fruit[0].title())

结果:

 I like Apple

原理可以大概的理解为:

第一行代码:程序在内存中创建了连续的空间,存储这三个元素。然后把这个空间地址给了fruit变量。

第二行代码:程序拿到这个空间地址所指向的内存,寻找到下标所指示的元素,调用方法title(),将拿到的元素进行首字母大写的操作。最后进行字符串的拼接。

2.修改、添加和删除元素

创建的大多数列表都将是动态的。这意味着列表创建后,将随着程序的运行增删元素。

2.1 修改元素的列表

修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改的元素的索引,在指定该元素的新值。

fruit = ["apple","banana","pear"]
fruit[0] = "strawberry"
print (fruit)

结果

['strawberry', 'banana', 'pear']

可以修改元素中的任何一个值,不仅是第一个值。

2.2在列表中添加元素

可能会有很多原因要在列表中添加新的元素。Python提供了多种在既有列表中添加新数据的方式。

2.2.1 在列表末尾添加元素

在列表中添加新元素时,最简单的方式是将元素附加到列表末尾。给列表附加元素时,它将添加到列表的末尾。

方法append()将元素"strawberry"添加到列表末尾,而不影响列表中其他的所有元素。

fruit = ["apple","banana","pear"]
fruit.append("strawberry")
print (fruit)

结果

['apple', 'banana', 'pear', 'strawberry']

方法append()让动态的创建列表易如反掌。

fruit = []
fruit.append("apple")
fruit.append("banana")
fruit.append("strawberry")
print (fruit)

结果

['apple', 'banana', 'strawberry']
2.2.2 列表中插入元素

使用方法insert()可在列表的任何位置添加新的元素。你需要指定新元素的索引和值

fruit = ["apple","banana","pear"]
fruit.insert(0,"strawberry")
print (fruit)

结果

['strawberry', 'apple', 'banana', 'pear']

方法insert()在索引的0处添加空间,并将"strawberry"存储到这个地方。这种操作将列表中既有的每个元素都右移一个位置。

2.3 从列表中删除元素

经常需要在列表中删除一个或多个元素。可以根据位置或值来删除列表中的元素。

2.3.1 使用del语句删除元素

如果知道要删除的元素在列表中的位置,可使用del语句。

fruit = ["apple","banana","pear"]
del fruit[0]
print (fruit)

结果

['banana', 'pear']

使用del可删除任何位置处的列表元素,条件是知道其索引的位置。

fruit = ["apple","banana","pear"]
del fruit[0]
del fruit[0]
print (fruit)

结果

['pear']

使用del语句将值从列表中删除后,你就无法再访问它了。

2.3.2 使用方法pop()删除元素

将元素从从类表中删除,并接着使用它的值。

方法pop()可删除列表末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类比:列表就像一个栈,而删除列表末尾的元素就相当于弹出栈顶元素。

fruit = ["apple","banana","pear"]
last_element = fruit.pop()
print (last_element)
print (fruit)

结果

pear
['apple', 'banana']
2.3.3 弹出列表中任何位置处的元素

可以使用pop()来删除列表中任何位置的元素,只需要在括号中指定要删除的元素信息索引即可

fruit = ["apple","banana","pear"]
first_element = fruit.pop(0)
print (first_element)
print (fruit)

结果

apple
['banana', 'pear']

当使用pop()时,被弹出的元素就不在列表中了。

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

2.3.4 根据值删除元素

有时候,不知道要从列表中删除的值所处的位置。如果只知道要删除的元素的值,可使用方法remove()。

fruit = ["apple","banana","pear"]
banana_too = "banana"
fruit.remove(banana_too)
print (fruit)

结果

['apple', 'pear']

方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环判断是否删除了所有这样的值,这个今后再说。

2.4 组织列表

在创建的列表中,元素的排列顺序常常是无法预测的,经常需要以特定的顺序呈现信息。有时候,希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可根据具体的情况使用。

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

方法sort()能够较为轻松的对列表进行。有一个水果的列表,要让其中的水果按字母的顺序排列。为了简化,该列表中的所有的值都是小写的。

fruit = ["apple","pear","banana"]
fruit.sort()
print (fruit)

结果

['apple', 'banana', 'pear']

方法sort()永久的修改了列表元素的排列顺序,现在水果的名称是按照字母的排列顺序的,再也无法恢复到原来的排列顺序。

此外,还可以按字母的反向顺序排列列表中的元素。向sort()方法传递参数reverse = True。

fruit = ["apple","pear","banana"]
fruit.sort(reverse=True)
print (fruit)

结果

['pear', 'banana', 'apple']
2.4.2 使用函数sorted()对列表进行临时排序

要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()能够按特定的顺序显示列表的元素,同时不影响它们在列表中的原始排列顺序。

fruit = ["apple","pear","banana"]
fruit_too = sorted(fruit)
print (fruit)
print (fruit_too)

结果

['apple', 'pear', 'banana']
['apple', 'banana', 'pear']

调用函数sorted()后,列表的排列顺序并没有变。如果你要按与字母相反的顺序显示列表,也可以像函数sorted()传递参数reverse = True

fruit = ["apple","pear","banana"]
fruit_too = sorted(fruit,reverse= True)
print (fruit)
print (fruit_too)

结果

['apple', 'pear', 'banana']
['pear', 'banana', 'apple']
2.4.3 倒着打印列表

要反转列表元素的排列顺序,可使用方法reverse()。

fruit = ["apple","pear","banana"]
fruit.reverse()
print (fruit)

结果

['banana', 'pear', 'apple']

注意,reverse()不是按字母的顺序相反的顺序排列列表中的元素,而只是反转列表元素的排列顺序。

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

2.4.4 确定列表的长度

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

fruit = ["apple","pear","banana"]
length = len(fruit)
print (length)

结果

3

注意:Python计算列表元素数时是从1开始(很多语言都是的),因此约定列表的长度时,不会遇到差1的问题。

2.5 使用列表时避免索引错误

刚开始列表时,经常会遇到一种错误。列表中只包含3个元素,却要求获取第4个元素。

fruit = ["apple","pear","banana"]
print (fruit[3])

结果

Traceback (most recent call last):
  File "hello_python.py", line 2, in <module>
    print (fruit[3])
IndexError: list index out of range

Python解释器试图想你提供位于索引3处的元素,但是它搜索fruit时,却发现索引3处没有元素。

索引错误意味着Python无法理解你指定的索引。

每当需要访问最后一个列表元素时,都可以使用-1索引。当列表中仅只有一个元素时,它也会给你返回。

fruit = ["banana"]
print (fruit[-1])

结果

banana

仅当列表为空时,这样访问才会报错。

fruit = []
print (fruit[-1])

结果

Traceback (most recent call last):
  File "hello_python.py", line 2, in <module>
    print (fruit[-1])
IndexError: list index out of range

注意:发生索引错误却找不到解决办法时,尝试将列表和长度打印出来。列表可能与想象的完全不一样,在程序动态的处理时尤为重要。
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值