列表创建和操作
a) 创建列表
b) 基本操作
c) 遍历
与其说 列表 它是一个数据类型,用起来 更像一个灵活多变的数据存储方案
创建列表
创建列表例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
player = 'mao 80 50'
mao = '100 60 0'
zou = '100 100 100'
player1 = ['mao',100,50]
mao = [100,60,0]
type (mao)
list
list1 = []
type(list1)
list
|
表达含义
先定义一个 字符串类型的数据 用来存储 游戏 用户名 --生命 --血值
分别为'mao 80 50 '
比如 mao 是角色名字 80生命值 50是等级
是可以在一个大字符串当中,有效的分段存储,
但是字符串取数据的时候 ,就会就问题
比如生命力是 100 可是被攻击后就就80血
从字符串取数据的时候要分片,也就是切割。通过索引的形式,而这里用字符串取值的时候 每个角色取值的名字 长短不一,所以几个字符代表名字 ,是不可以的,血的值 也是经常变换的 所以显然字符串该被淘汰了。
换一种数据 我们存储用户的成绩
如 mao 的 成绩是 '100 -60 -0'
zou的成绩 为全是满分'100--100--100' 分
把这个方向放大 ,比如 这个班里 有60个同学
那你就有60个这个的字符串。
那你就要注意每个字符串的长度 每个元素的长度,都是不一样的
所以不能方便的把里面的值 取出来。
这里时候就要用到列表了[ ],
数据类型 列表 就有它的用武之地了。
上面的都是几组元素 相对于某个角色来说 这是它的 三个元素 ,相对某个同学来说这是它的三个评分
所以这个时候 就要用到 列表存储这样的数据
列表存储 用 方括号 隔开就行了[]是什么值就 存什么值
理论上 列表是 可以存储 对象的 ,如 字符串 数字
切忌 变量的名字 不要用关键字
player1 用列表的方式 表达 = [‘milo’角色名称,100的生命力 50的攻击值]
milo 列表的方式 表达 = [100,60,0]
查看milo的值 为 list 列表形式
ilst1 = [] 代表 等于 一个空的列表 后面 用到的时候可以选择带入值 进去
type (ilst1) 查看类型 ,空的也是为列表的。
记住不能定义变量名字为list 不能为 关键字
如果你定义一个为 list的话,那你的函数就用不了,
比如字符串 转换成 整数的时候 会到函数,所以这里面 变量的名字一定要注意
创建列表无非是 创建几个元素,用逗号隔开。里面可以是任何一个值 甚至是函数 一个类。
操作列表
列表的操作跟 字符串操作很相似
不管有几个值,反正是由逗号隔开的,列表内一共为12 3 个值
字符串 我们 定义好了之后,都是是从0开始 0123456 每一个字符,
每一个字符都有个索引,索引是on0开始的,至于为什么从0开始
科普 是因为最早期的时候,计算机都为0 1,存储空间宝贵,每一个字节(byte)都是要加以利用,最小的都是从0开始,0不能浪费。从那个时候开始,计算机里用0变成了一个传统 一直到现在。
取列表里面的值方法,因列表的值的方法 和字符串值的方法都是一样的。
应为 字符串 和列表 在这里面 统称叫做序列类型的数据
字符串可以通过索引取值,列表也可以
通过列表取值例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
mao
[100, 60, 0]
player1
['mao', 100, 50]
player1[0]
'mao'
player1[1]
100
player1[:3]
['mao', 100, 50]
player1[:2]
['mao', 100]
|
表达含义
mao列表
列表包含100,60,0
Player1列表
包含’mao’,100,50
通过索引的方式取player1列表值0
返回值为’mao’
通过索引的方式取player1列表值0
返回值为100
通过缩影的方式取值player1[:3]结束值到3
返回列表类一直到元素3的值 ’mao’,100,50]
通过缩影的方式取值player1[:2]结束值到2
返回列表类一直到元素2的值 [’mao’,100]
列表拼接
1
2
3
4
5
|
mao + player1
[100, 60, 0, 'mao', 100, 50]
mao * 3
[100, 60, 0, 100, 60, 0, 100, 60, 0]
|
表达含义
列表mao + 列表player1
两个列表相加起来 就是一个大列表
返回值 为两个列表拼接到一起成为一个大的列表。
列表 mao * 3
返回值 mao列表里面的值 重复3的列表
列表的操作 可以跟字符串 去类比的记忆。
提到一个词 序列
列表跟字符串一样都是有序的排列,都叫做序列
编列列表
如果想把两个列表里面的值 全部取出来。
在字符串里面可以 用 for 循环 迭代编列 把 值取出来
既然列表跟字符串的操作都是相似的 列表可以用
编列例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
for i in '128r':
print(i)
1
2
8
R
for i in mao:
print(i)
100
60
0
In [23]: mao
Out[23]: [100, 60, 0]
|
表达含义
for 迭代取字符串里面的值
循环送代打印出来
1
2
8
R
下面是列表的遍历表示方法
把每一个值都取出来
For 循环送代 mao 列表
循环送代打印值
100
60
0
本章成果
知道创建列表,操作列表索引的概念。类比字符串来记忆
列表的操作 都是根据 数据存储方式来进行的操作
2017年12月8号 王宇林
本文转自 新网学会51CTO博客,原文链接:http://blog.51cto.com/xwxhvip/2048866 ,如需转载请自行联系原作者