a)? 创建列表
b)? 基本操作
c)? 遍历
与其说? 列表? 它是一个数据类型,用起来 更像一个灵活多变的数据存储方案
?
创建列表
创建列表例子
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变成了一个传统 一直到现在。
取列表里面的值方法,因列表的值的方法 和字符串值的方法都是一样的。
应为 字符串 和列表 在这里面 统称叫做序列类型的数据
?
字符串可以通过索引取值,列表也可以
通过列表取值例子
?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]
列表拼接
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 循环 迭代编列 把 值取出来
既然列表跟字符串的操作都是相似的 列表可以用
编列例子
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
本章成果
知道创建列表,操作列表索引的概念。类比字符串来记忆
列表的操作 都是根据 数据存储方式来进行的操作
原文地址:http://blog.51cto.com/xwxhvip/2048866