变量类型——列表、元组、字典
一、列表
空列表
varibals = []
或 varibals = list ()
//生成一个空列表
注:列表可以容纳任意类型的对象,任意数量的对象
【重点】列表是可变类型的
varibals = [1,2,3,'ni hao','hello,python',[],[10,100]]
1.列表简单操作
- 向列表中插入元素
varibals = []
// 创建一个空列表
varibals.append(1)
——>[1] //向空列表中添加1
varibals.append(2)
——>[1,2] //再添加2
varibals.append('ni hao')
——>[1,2,‘ni hao’] //添加字符串元素‘nihao’ - 改变列表中的元素值_(列表是可变类型的,列表长度可增可减,列表中的变量是可变的可以进行更改)
varibals = [1,2,'ni hao']
varibals[0] = 10
//将列表中的第一个元素替换成10
varibals
——>[10,2,‘ni hao’]
拓展:Python是一种动态类型的语言,一个变量是什么类型,要看程序在运行过程中变量所代表的值是什么。
var = 10
type(var) //int型
var = 'str'
type(var) //所代表的值发生改变,变成了string字符串类型。
- 列表切片(同字符串类似)
varibals = [10,2,'ni hao']
varibals[-2:] //取后两个值 [2,'ni hao'']
varibals[:2] //取前两个值 [10,2]
varibals[1:2] //取下标为1到2的值,但不取到2 ——>[2]
- 列表拼接(加法操作)
varibals = [1,2]
var_1=variblas + [23,90]——>[1,2,23,90]
- 列表的乘法操作
varibals = [1,2]
varibals * 4 ——>[1,2,1,2,1,2,1,2]
注:
字符串与列表可以统称为序列;
列表是一种容器型的序列——>任意类型均可放入
字符串是一种扁平型的序列——>由多个字符构成
其中len()、+、* 等多项操作,列表与字符串是通用的。
2.列表函数运用
- 添加元素
varibals = [1,2,'ni hao']
varibals.append(2)
//向列表中加入元素2
varibals.append('singtop')
//向列表中加入字符串’singtop’
varibals
——>[1,2,‘ni hao’,2,‘singtop’] - 清空列表
varibals = [1,2,4,'mx']
varibals.clear()
——>[] //将列表中的元素删除,清空列表 - 复制列表
varibals = [1,23,43,567,'ni hao']
new_var= varibals.copy()
//将varibals列表复制给new_var
new_var
——>[1,23,43,567,‘ni hao’]
另一种方法是:
new_var = varibals
//将new_var的指针也指向varibals,修改任何一个,另一个也发生改变。
new_var
——>[1,23,43,567,‘ni hao’]
注:以上两种复制方法不同之处在于:
使用第二种方法是使两个变量的指针指向同一个列表地址,更改一个列表,另一个也会发生变化。即不能够随意更改新的变量中的值
使用第一种方法可以任意更改其中的任一个值。 - 多个列表结合成一个
a = [1,2]
b = [3,4]
a+b
——>[1,2,3,4] //将a,b两个列表组合成一个
另一种组合方式:a.extend(b),将b列表添加到a列表的尾部,形成一个新的a列表
a.extend(b)
//b列表追加到a列表的尾部
a
——>[1,2,3,4] - 列表中元素的插入
varibals = [1,2,'ni hao',6,'singtop']
varibals.insert(0,100)
//在列表的第一个位置(下标为0)处,插入元素100
varibals
——>[100,1,2,‘ni hao’,6,‘singtop’] - 弹出并返回列表中的值
a = [2,4,7,'ni hao',8]
a.pop() //弹出并返回最末端的值 '8'
a.pop(0) //弹出并返回下标为0的值 , '2'
a.pop(3) //弹出并返回下标为3的值 ,'ni hao',若下标超出列表序列,报错
- 移除列表中的元素
a = [1,2,7,'ni hao',20]
a.remove(2) //将从0位置开始找到的第一个2移除,若要移除的字符不存在,则报错
a.remove('ni hao')//将从0位置开始找到的第一个'ni hao'移除
a ——>[1,7,20]
- 列表中元素排序
a = [1,4,3]
a.sort()
——>[1,3,4]
a.sort(reverse=True)
——>[4,3,1] //reverse反转True - 判断一个变量是否在列表中
a = [1,4,3]
4 in a
——>True //4在a列表中
5 in a
——>False //5不在a列表中
二、元组
元组(tuple):不可变列表
空元组的创建:
var = tuple()
或 var =()
type(var)
——>tuple
var = (1,2,1,3,4,5,6,[23,4,3,56])
var.count(1)
——>2 //count()计数,元组中1出现两次
var.index(5)
——>5 //索引为5处的元素为 5.
a,b = 10,20
——>实际为 (a,b)= (10,20)
拓展:元组中的函数仅有count()和index()
三、字典类型
字典(dict)
创建空字典:
var = {}
或 var = dict()
type(var)
——>dict
var = {
‘中’:100,
‘左’:200
}
字典(值:页码)—解决映射问题
var['中']
——>100 //查找字典中的’中’值,其页码为100;'中’所在的页码
如若利用列表:
words = ['中','左']
location = [100,200]
location[words.index('中')]
——>100
- 拉锁函数(将两个列表形成字典)_ zip()
words = ['中','左']
location = [100,200]
zip(words,location)
//拉锁函数zip(),将两个列表形成一个对象
new_var = list(zip(words,location))
——>[(‘中’,100),(‘左’,200)]
//list()函数,将形成的对象转化为列表
dict(new_var)
——>{‘中’:100,‘左’:200} //形成字典类型
拓:若list(zip([1,2],[3,4],[5,6,7]))
——>[(1,3,5)(2,4,6)]
令Students=['wang','li','sun','cui','zhang']
将Students中的每一个元素都赋予一个初始值
money= dict.fromkeys(Students,10)
//赋予每一个元素初始值10,形成字典类型
money={'wang':10,'li':10,'sun':10,'cui':10,'zhang':10}
//形成的字典
- 访问字典中某元素的值
money={'wang':10,'li':10,'sun':10,'cui':10,'zhang':10}
money['wang']
——>10 //访问字典中wang元素所对应的页码
money['ww']
——>报错 //若字典中不存在该元素,则报错
另一种查询方式
money.get('wang')
——>10
a=money.get('ww)
——>若不存在该值,则a为None
区别:
使用.get(’’)可以在查询的值不存在时,赋予他一个值。
a = money.get('ww',100)
——>100 - 将字典拆分成列表
money={'wang':10,'li':10,'sun':10,'cui':10,'zhang':10}
money.keys()
——>dict_keys([wang’,‘li’,‘sun’,‘cui’,‘zhang’])
money.values()
——>dict_values([10,10,10,10,10])
money.items()
——>dict_items([('wang’10),(‘li’,10),(‘sun’,10),(‘cui’,10),(‘zhang’,10)]) - 删除字典中元素的操作
money.pop('wang')
——>10 //弹出并返回该元素的值
money
——>{‘li’:10,‘sun’:10,‘cui’:10,‘zhang’:10} - 增加元素的操作
money['gulin']=10000
//添加’gulin’元素,并将其值赋予10000
money
——>{‘wang’:10,‘li’:10,‘sun’:10,‘cui’:10,‘zhang’:10,‘gulin’:10000}
money.setdefault('yuan',100)
——>100 //该增加元素的方式,当元素存在时,返回其值;若不存在时,给他个值并返回。
@梦幻泡沫