在前面的章节有提及数据类型和变量,里面概括性的写了列表,只知道它是放数据的,这节就重点讲下怎么玩列表
基础
- 首先,生成一个列表:
>>> first_list = []
- 然后,往里塞数据:
>>> first_list.append('abc') #塞进去一个字符串,abc
>>> first_list.append(123) #塞进去一个数字,123
>>> first_list #打印,显示列表里面的数据
['abc', 123]
- 数据存在,然后清空它
>>> first_list.clear #清空列表的函数,没加括号,只是介绍函数
<function list.clear>
>>> first_list.clear() #清空列表的函数,如果要执行它,一定要加括号
- 现在列表是空的,然后又塞数据
>>> for i in range(1,10):
..: first_list.append(i)
>>> first_list #打印列表的数据,9个
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> first_list.reverse() #reverse() 是翻转列表,将顺序反过来
>>> first_list
[9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> first_list(0) #弹出第0个元素【元素是从0开始数数的,所以是弹出9】
9
>>> first_lis
[8, 7, 6, 5, 4, 3, 2, 1]
>>> first_lis.remove(7) #移除函数,删除列表中的元素,例如7【不是第七个,而是元素7】
>>> first_list
[8, 6, 5, 4, 3, 2, 1]
以上就是列表的基本操作,下面就是好玩点的
进阶
首先,列表可以由列表生成式来生成,非常简洁,如下:
>>> two_list = [ i for i in range(1,10)] #生产从1到9的顺序列表
>>> two_list
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> import random
>>> three_list = [random.randint(0,10) for i in range(1,10)]
>>> three_list
[10, 5, 7, 2, 10, 10, 8, 3, 0]
这里对列表生成式的代码解释一下:
-
[i for i in range(0,10)]
中的for i in range(0,10)
是 for 循环语法,而 for 前面的 i 变量,就是当前 for 循环中 i 代表的值。所以结果就是从1到9的数值 -
import random
导入random库,因为下一行需要使用random库的randint函数,随机获取0~10的整数 -
[random.randint(0,10) for i in range(1,10)]
中,for i in range(0,10)
只是起到一个循环作用,说明这个列表有9元素,每个元素的值,都是有random.randint(0,10)
来随机获取的
获得了额随机数组成的列表,但是我们需要按顺序来排序,怎么办?列表是自带排序函数的,代码如下:
>>> three_list
[10, 5, 7, 2, 10, 10, 8, 3, 0]
>>> three_list.sort()
>>> three_list
[0, 2, 3, 5, 7, 8, 10, 10, 10]
想要查看列表的全部函数?很简单:
>>> dir(list)
['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] #隐藏了'__函数名__'类型函数
恐怖的Python
还有一点需要提及,Python是蟒蛇,也就代表着它可以吃同类,所以列表的参数,不仅可以放字符串、整型等等,列表还可以把列表作为一个参数放进去,就像这样:
>>> one = [1, 2, 3]
>>> one
[1, 2, 3]
>>> two = [4, 5, 6]
>>> two
[4, 5, 6]
>>> one.append(two)
[1, 2, 3, [4, 5, 6]]
>>> two.append(one)
>>> two
[4, 5, 6, [1, 2, 3, [...]]]
是不是有点不可思议?问我two
后面为什么不写出来?因为这是死循环,很恐怖的....出家人不打诳语,上图
更多Python3教程--传送门