码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础知识(五)

时间:2018-12-25 23:34:27      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:get   dict   tde   hung   hash   数字   ext   hone   返回值   

# -*- coding: utf-8 -*-
# @Time : 2018-12-25 19:31
# @Author : 三斤春药
# @Email : zhou_wanchun@qq.com
# @File : Python基础知识(五).py
# @Software : PyCharm


Python基础知识(五)
今日内容大纲:
昨日内容回顾
list:
增:append() insert(index,object) extend() 迭代着追加

删:
pop 默认删除最后一个,按照索引去删除,有返回值。
remove 按照元素去删除。
clear 清空列表。
del l1 删除列表
del l1[index] 按照索引删除
del l1[0:3] 按照切片删除
del l1[0:3:3] 按照切片+步长删除

改:
l1[2] = ‘chun‘
l1[1:3] = ‘chun‘ 迭代着添加
l1[1:4:2] = [1,33]

查:
索引,切片,切片(步长)
for 循环



index : 通过元素查询索引
count : 查找某个元素在列表中的个数
sort : 排序,默认从小到大排序
sort.(reverse(True)) 从大到小
l1.reverse()
len() : 统计列表中元素的总个数。(也就是列表的长度)

l1 = [1,2,[‘wan‘,‘chun‘],33]
l1[1] = 200
l1[2][0] = l1[2][0].upper()


元组:
(1,‘chun‘,True)
查:索引,切片,切片(步长)、for 循环
index count len()
(1,‘chun‘,True,[1,2,3])

range() : 当做 可控范围的数字列表
与 for 循环结合。



字典 dict
why:
1,列表如果存储大量的数据,查询速度相对慢一些。
2,列表存储的数据一般没有什么关联性。
[小潘, 175, 男,......]
针对以上因素,python提供了一个基础数据类型:dict字典。
数据类型的分类:
容器型数据类型:list,tuple,dict set。
非容器型数据类型:str bool int。

可变(不可哈希)的数据类型:list,dict,set。
不可变(可哈希)的数据类型:str,bool, int,tuple
(1, 2, ‘alex‘, [1,2,3,])
b1 = True
b1 = False
l1 = [1, 2, 3]
l1.append(666)


what:字典:
{‘name‘: ‘alex‘} 以键值对形式存储的数据类型。
1,字典的键必须是不可变(可哈希hash)的数据类型,唯一的不重复。
字典的值可以是任意数据类型(对象)。
2,字典的查询速度非常快。
3,字典在3.5包括3.5之前是无序的,但是3.6优化机制,字典会按照创建字典之初的顺序排列。
4,字典可以存储大量的关联性数据。
{‘name‘: ‘alex‘,‘python3期‘:[‘小潘‘,‘春哥‘, ‘二师兄‘],
‘太白‘:{
‘name‘:‘太白金星‘,
‘id‘: 1306546743423,
‘phone‘: 1358225xxxx,
‘sex‘: ‘男‘

}

}

how:
增删改查

其他操作
where:
当你想构建大量的关系型数据的时候,用到dict

字典的嵌套

集合(了解)



dic = {"name":"chun" ,"age":20 ,"sex":"man"}
字典的 增删改查
==================>增
有则覆盖,有则添加
dic["height"] = 175
dic["age"] = 21
print(dic)

setdefault() 有则不变,无则添加
dic.setdefault(‘hight‘)
dic.setdefault("hight",175)
dic.setdefault("name","三斤春药")
print(dic)

=======================>删
pop 通过键key 去删除键值对
ret = dic.pop("age")
print(dic) # 有返回值 返回对应的值

ret1 = dic.pop("name2",‘没有此键‘) # 没有此键 就不报错并且设置返回值
print(ret1)
print(dic)


clear 清空
dic.clear()
print(dic)


popitem 删除最后一个键值对
3.5之前是随机删除,3.6删除最后一个键值对
ret = dic.popitem()
print(ret)
print(dic)


del
del dic
print(dic)

del dic["age"]
print(dic)



=========================>改
dic["age"] = 21
print(dic)

dic1 = {"name":"三斤春药" ,"age":20 ,"sex":"男"}
dic2 = {"name":"chunge" ,"weight":65}
dic2.update(dic1)
print(dic1)
print(dic2)
将dic1字典中的键值对覆盖添加到dic2中,dic1不变.
{‘name‘: ‘三斤春药‘, ‘age‘: 20, ‘sex‘: ‘男‘}
{‘name‘: ‘三斤春药‘, ‘weight‘: 65, ‘age‘: 20, ‘sex‘: ‘男‘}
dic.update(weight=150,hight=175)
dic.update(weight=150,hight=175)
print(dic)



=======================》查
按照键 查对应的值
print(dic[‘name‘])
print(dic[‘name2‘]) # 没有此键会报错

ret = dic.get(‘age‘)
ret2 = dic.get(‘age2‘)
ret3 = dic.get(‘age2‘,"没有此键")
print(ret)
print(ret2)
print(ret3)


直接 for 循环字典 来获取的是 key键:
for i in dic:
print(i)


dic.keys() dic.values() dic.items()
上面三个都是返回一个类似于列表的容器的特殊数据类型
print(dic.keys())
for i in dic.keys():
print(i)


print(dic.values())
for i in dic.values():
print(i)


print(dic.items())
for i in dic.items():
print(i)



分别赋值
a,b = 100,200
print(a,b)

a,b,c = (1,2,3)
a,b,c = [1,2,3]
print(a,b,c)

a = 50
b = 30
a,b = b,a
print(a,b) # 30 50



for k,v in dic.items():
print(k,v)
结果是 : name chun
age 20
sex man




字典的嵌套:

l1 = ["chun",‘alex‘]
print(l1[0].upper())
l1[0] = l1[0].upper()
print(l1)

dic = {
‘l1‘:[‘chun‘,‘三斤春药‘],
‘id‘:666,
1:{
‘date‘:20181225,
‘place‘:‘深圳骑士计划‘,
‘class‘:‘Python3期‘,
‘name_list‘:[‘周万春‘,‘chun‘,‘春哥‘,‘xx‘]
}
}
1,给小列表[‘chun‘, ‘三斤春药‘] chun后面插入一个字符串,‘aaa‘
dic[‘l1‘].insert(1,‘aaa‘)
dic2 = {‘l1‘:[‘chun‘,‘aaa‘,‘三斤春药‘]}
dic.update(dic2)
print(dic)


2,将id对应的666变成 1
dic[‘id‘] = 1
print(dic)


3,将 1 对应的字典的data变成20181224 .
dic2 = dic[1]
dic2[‘date‘] = 20181224
dic[1][‘date‘] = dic[1][‘date‘] - 1
dic[1][‘date‘] -= 1
print(dic)



4,将name_list对应的chun全部变成大写。
print(dic[1][‘name_list‘][1].upper())
dic[1][‘name_list‘][1] = dic[1][‘name_list‘][1].upper()
print(dic)



5,将name_list对应的 xx 删除。
dic[1][‘name_list‘].pop(-1)
dic[1][‘name_list‘].remove(‘xx‘)
del dic[1][‘name_list‘][-1]
print(dic)



格式化输出 %s
第一种方式:
msg = ‘我叫%s,今年%d,性别%s。‘ %(‘三斤春药‘,21,‘男‘)
print(msg)
第二种方式: 通过字典的方式
dic = {‘name‘:‘三斤春药‘,‘sex‘:‘男‘,‘age‘:18}
msg = ‘我叫%(name)s,今年%(age)s,性别%(sex)s。‘ % dic
print(msg)



fromkeys() 也是创建字典的一种方式
dic = {‘name‘:‘chun‘}
dic = dict.fromkeys(‘abc‘,‘春哥‘)
dic = dict.fromkeys([1,2,3],‘春哥‘)
dic = dict.fromkeys([1,2,3],[])
坑:值如果是可变的数据类型,那么所有的值都是一个内存地址
dic = dict.fromkeys([1, 2, 3], [‘chun‘])
dic[1].append(666)
print(dic)

Python基础知识(五)

标签:get   dict   tde   hung   hash   数字   ext   hone   返回值   

原文地址:https://www.cnblogs.com/zhouwanchun/p/10176858.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!