首页 > 代码库 > 数据类型2

数据类型2

1.3 列表

作用:可以存多个值,例如爱好、课程、多个朋友等。

定义:[]内可以有多个任意类型的值,例如:数字、字符串、列表、字典、元组等。

常用操作:

         索引

         切片

         追加

         删除

         长度

         包含

1.3.1 索引

索引,即为下标,与字符串类似;可以通过下标进行访问列表的值,从左往右,按照顺序进行访问,例如:

my_friends=[‘jack‘,‘tom‘,‘frank‘,4,10,30]
print(my_friends[1]) 

1.3.2 切片

从列表中切出子列表,例如:

my_friends=[‘jack‘,‘tom‘,‘frank‘,4,10,30]
print(my_friends[1:5])

运行结果:

[‘tom‘, ‘frank‘, 4, 10] 

1.3.3 追加

利用列表的方法append,向列表尾部添加元素,例如:

my_friends=[‘jack‘,‘tom‘,‘frank‘,4,10,30]
my_friends.append(‘mary‘)
print(my_friends)

运行结果:

[‘jack‘, ‘tom‘, ‘frank‘, 4, 10, 30, ‘mary‘]

1.3.4 删除

列表的删除有pop、remove,具体用法,用例子进行说明,例如:

my_friends=[‘jack‘,‘tom‘,‘frank‘,4,10,30,‘mary‘]
# pop按照索引进行删除
my_friends.pop()   # 从列表尾部删除
my_friends.pop(0)  # 从列表头部删除
my_friends.pop(2)  # 从指定位置删除
print(my_friends)  # 运行结果:[‘tom‘, ‘frank‘, 10, 30]

my_friends=[‘jack‘,‘tom‘,‘frank‘,4,10,30,‘mary‘]
#remove按照值进行删除
my_friends.remove(‘frank‘) # 删除值为frank
print(my_friends)           # 运行结果:[‘jack‘, ‘tom‘, 4, 10, 30, ‘mary‘]

1.3.5 长度

计算列表长度,利用列表的内置方法__len__()进行计算,python也提供了len()方法计算列表长度,例如:

my_friends=[‘jack‘,‘tom‘,‘frank‘,4,10,30,‘mary‘]
print(my_friends.__len__())   # 内置方法__len__() 结果:7
print(len(my_friends))        # 利用方法len()     结果:7 

1.3.6 成员运算,包含(in)

成员运算,主要利用in判断成员是否在列表存在,例如:

my_friends=[‘jack‘,‘tom‘,‘frank‘,4,10,30,‘mary‘]
print(‘mary‘ in my_friends)    # 运行结果:True

1.3.7 插入

插入元素,利用insert

my_friends=[‘jack‘,‘tom‘,‘frank‘,4,10,30,‘mary‘]
my_friends.insert(0,‘abc‘)    # 从开始位置插入
my_friends.insert(2,‘cat‘)    # 指定位置插入
print(my_friends) 

1.3.8 其他操作

my_friends=[‘jack‘,‘tom‘,‘frank‘,4,10,30,‘mary‘]
# my_friends.clear()       # 清空列表的值
new_list=my_friends.copy() # copy一个列表
my_friends.count(‘jack‘)   # 统计元素在列表中的次数
my_friends.extend([‘jack1‘,‘jack2‘,‘jack3‘]) # 一次添加多个元素
my_friends.index(‘tom‘)   #  查看元素在列表中的下标
my_friends.reverse()      #  列表翻转

1.3.9 模拟队列

#队列:先进先出
fifo=[]
# 入队
fifo.append(‘first‘)
fifo.append(‘second‘)
fifo.append(‘third‘)
# 出队
fifo.pop(0)
fifo.pop(0)
fifo.pop(0)

# 入队
fifo.insert(0,‘first‘)
fifo.insert(0,‘second‘)
fifo.insert(0,‘third‘)
# 出队
fifo.pop()
fifo.pop()
fifo.pop()

1.3.10 模拟堆栈

#堆栈:先进后出
filo=[]
# 入栈
filo.append(‘first‘)
filo.append(‘second‘)
filo.append(‘third‘)
print(filo)
# 出栈
filo.pop()
filo.pop()
filo.pop()

# 入栈
filo.insert(0,‘first‘)
filo.insert(0,‘second‘)
filo.insert(0,‘third‘)
# 出栈
filo.pop(0)
filo.pop(0)
filo.pop(0) 

1.5 字典

作用:存多个值,用key-value进行存取,取值方便,速度快

特点:字典的key必须是不可变类型,也成为可hash类型

常用操作:

         存/取

         删除

         键值

         长度

         循环

         包含in

1.5.1 定义

字典的key必须是不可变类型(数字、字符串、元组),值可以是任意类型

定义的方式:

info={‘name‘:jack,‘age‘:18,‘sex‘:‘male‘}
#本质info=dict({‘name‘:jack,‘age‘:18,‘sex‘:‘male‘}) 

1.5.2 存/取

# 字典的取值,赋值
info={‘name‘:‘jack‘,‘age‘:18,‘sex‘:‘male‘}
print(info[‘age‘])     # 取值
info[‘height‘]=1.80   # 存值

1.5.3 删除

通过字典的pop方法,进行删除;pop方法有两个参数,通过指定key进行删除子点的元素

info={‘name‘:‘jack‘,‘age‘:18,‘sex‘:‘male‘}
print(info.pop(‘name‘))
# print(info)
print(info.pop(‘tom‘,None)) 

1.5.4 获取

利用get获取字典的值,如果key不存在,返回None,不报错;例如:

info={‘name‘:‘jack‘,‘age‘:18,‘sex‘:‘male‘}
print(info[‘name‘])                 # key不存在,报错
print(info.get(‘name‘))             # key不存在,返回None
print(info.get(‘addr‘,‘not key‘))   # key不存在,返回not key

1.5.5 其他方法

info={‘name‘:‘jack‘,‘age‘:18,‘sex‘:‘male‘}
print(info.popitem())    # 随机删除一个元素
print(info.keys())      # 获取字典所有的key
print(info.values())    # 获取字典所有的value

# 循环字典
for key in info:
    print(key)
for key in info:
    print(key,info[key])

# 字典的items()方法
for key,val in info.items():   # key,val == (‘name‘,‘jack‘)
    print(key,val) 

1.5.6 fromkeys

利用fromkeys方法,进行初始化字典

dic=dict.fromkeys([‘name‘,‘age‘,‘sex‘],None)
print(dic)
    print(dict([(‘name‘, ‘jack‘), (‘age‘, 18), (‘sex‘, ‘male‘)])) 

1.5.7 update

update用新的字典更新原来字典,如果原来字典没有,直接把新字典添加原来字典

info={‘name‘:‘jack‘,‘age‘:18,‘sex‘:‘male‘}
dic={‘a‘:1,‘b‘:2,‘name‘:‘mary‘,‘sex‘:‘female‘}
info.update(dic)
print(info) 

数据类型2