元组Tuple:元组也是list,只不过是不可变的,意思是不能更改元素的值,一般用来放置程序中不变的数据
1、元组的定义:
用()来定义
mysql=(‘127.0.0.1’,3306,‘my’,‘root’,‘123456’)
如果只有一个元素的话,元组定义后面必须加逗号,否则就是一个字符串了
t = ('banner',)
2、元组的内置方法:
print(mysql.count('my')) #找个数
print(mysql.index('my')) #返回下标
字典dict:取值方便,速度快,字典是无序的,key不可以重复,因为是用key来索引的
1、字典的定义:字典是一种用{}存放key-value的定义方式,key和value用‘:’隔开, 多个key时,用逗号分隔,字典可以嵌套
eg: d={
'name':‘张三丰’,
‘age’:18,
‘sex’:'男',
'addr':'元末武当山'
}
user_info = {
'sherry':{
'age':18,
'sex':'女',
'addr':{'北京','天津','三亚'},
'job':'manger',
'asset':{'cmbc':1000000,'cbc':500000,'abc':750000}
},
'Nacy':{
'age': 18,
'sex': '女',
'addr': '三亚',
'job': 'manger',
'asset': 8000000
},
'jason':{
'age': 18,
'sex': '男',
'addr': '三亚',
'job': 'manger',
'asset': 700000
}
}
2、字典的取值
1、print(d['name']) # 打印name所对应的value ,[]里放的是key,如果写了不存在的key,则报错
结果是 》 张三丰
2、print(d.get('name')) #找到name所对应的value ,如果写了不存在的key,则返回None
3、字典嵌套取值:
print(user_info['sherry']['asset']['cmbc'] #从上往下一层层依次取值
结果是 》1000000
#计算sherry的所有资产,如下:
all = user_info['sherry']['asset'].values()
all_asset = 0
for money in all:
all_asset = all_asset+money
print(all_asset)
结果是 》2250000
3、字典的增删改查
1、增加:直接赋值即可,注意key不能重复,key重复了,就是修改了
d[‘phone’]=18818818818
d.setdefault('job','武当派掌门')
print(d)
结果是 》{'name': '张三丰', 'sex': '男', 'phone': 18818818818, 'age': 18, 'job': '武当派掌门', 'addr': '元末武当山'}
2、修改:
d['phone']=17717717717 # 如果这个key存在的话,修改他的值,如果key不存在的话,新增一个
print(d)
结果是 》{'name': '张三丰', 'job': '武当派掌门', 'age': 18, 'addr': '元末武当山', 'phone': 17717717717, 'sex': '男'}
3、删除:
d.pop('phone') #删除某个key
d.popitem() #随机删除key
del d['addr'] #删除某个key
d.clear #清空
4、查询
user_info.get('sherry') #获取 sherry 的信息,如果key不存在的话,返回none
user_info['jason'] #获取jason的值,如果key不存在,会报错
‘sherry’ in user_info # 判断是否存在这个字典中,返回的是布尔值
4、for循环整个字典:
for k in dic:
print(k,dic[k])#打印key和value的值,推荐使用这种方式,速度快
for k in user_info:
print(k,user_info.get(k))
结果是:
Nacy {'job': 'manger', 'addr': '三亚', 'age': 18, 'asset': 8000000, 'sex': '女'}
jason {'job': 'manger', 'addr': '三亚', 'age': 18, 'asset': 700000, 'sex': '男'}
sherry {'job': 'manger', 'addr': {'天津', '三亚', '北京'}, 'age': 18, 'asset': {'cbc': 500000, 'cmbc': 1000000, 'abc': 750000}, 'sex': '女'}
for k in user_info:
print(k)
结果是:
Nacy
sherry
jason
for k,v in user_info.items():#把字典的k和v转成一个二维数组,可以用来取值再存到新的list或者dict里
print(k,v)
结果是:
Nacy {'sex': '女', 'addr': '三亚', 'asset': 8000000, 'job': 'manger', 'age': 18}
sherry {'sex': '女', 'addr': {'三亚', '北京', '天津'}, 'asset': {'abc': 750000, 'cbc': 500000, 'cmbc': 1000000}, 'job': 'manger', 'age': 18}
jason {'sex': '男', 'addr': '三亚', 'asset': 700000, 'job': 'manger', 'age': 18}
5、字典的内置方法:
# print(d.keys())#获取到字典所有的key
# print(d.values())#获取到所有的values
# d.has_key('addr') #python2里面字典有这个方法,有没有这个key
# if 'addr' in d :#判断key是否在这个字典里头
# print('addr')
# print(d.items())#是把字典的k和v转成一个二维数组
# for k,v in d.items():#
# print(k,v)
# dic.update(dic2) # 更新字典值,如果key存在的话,就更新,不存在的话就添加