# -*- 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] = 200l1[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"] = 175dic["age"] = 21print(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)

deldel dicprint(dic)

del dic["age"]print(dic)

=========================>改dic["age"] = 21print(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,200print(a,b)

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

a = 50b = 30a,b = b,aprint(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变成 1dic['id'] = 1print(dic)

3,将 1 对应的字典的data变成20181224 .dic2 = dic[1]dic2['date'] = 20181224dic[1]['date'] = dic[1]['date'] - 1dic[1]['date'] -= 1print(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。' % dicprint(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基础知识(五)的更多相关文章

  1. Python基础知识(五)------字典

    Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型 ...

  2. python基础知识五

    数据结构基本上就是---它们可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的. python中有三种内建的数据结构---列表.元祖和字典. 我们将会学习如何使用它们,以及它们如何使编程变得 ...

  3. python基础知识五 各类型数据方法补充,转换,分类,编码+坑中菜

    3.9各类型数据方法补充,转换,分类,编码,坑中菜 3.9.1数据类型方法补充 1.str:不可变 补充方法 s1.capitalize():首字母大写 s1 = "alex" s ...

  4. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  5. python 基础知识(一)

    python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...

  6. python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  7. Python基础知识详解 从入门到精通(七)类与对象

    本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...

  8. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  9. python基础知识(二)

    以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍

随机推荐

  1. nuxt docker 运行

    nuxt 是vue 版的next ,实现的功能还是很方便的,对于需要开发性能要求比较高的web app 是一个很不错的选择 备注: 项目很简单,使用docker && docker-c ...

  2. FastAdmin 生产环境升级注意

    FastAdmin 生产环境升级注意 列出 FastAdmin 实际生产中升级注意事项. 安全相关,看 FastAdmin 的资讯. 如果使用 Git 更新生产文件,注意更新后的权限. JS 修改后注 ...

  3. 混合pyqt和qtcreator

    目的:测试能否用qtcreator编辑ui资源,而用python编写代码逻辑 import sysfrom PyQt4 import QtGui, uic class MyWindow(QtGui.Q ...

  4. Web 前端面试小知识

    简历投递 前期为了解自身短板, 可以海投一些试试. 不建议长期海投简历, 对用人单位简历筛选和你自身都没什么好处. 投简历之前最起码要关注以下几点(薪资范围, 公司位置, 职位要求, 是否为培训机构冒 ...

  5. mysql 5.45 以后需要 需要 安全套接字问题

    错误异常:According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established ...

  6. java JVM JRE JDK三者之间的关系

    JDK在包含JRE之外,提供了开发Java应用的各种工具,比如编译器和调试器. JRE包括JVM和JAVA核心类库和支持文件,是Java的运行平台. JVM是JRE的一部分,Java虚拟机的主要工作是 ...

  7. 开源自然语言处理工具包hanlp中CRF分词实现详解

     CRF简介 CRF是序列标注场景中常用的模型,比HMM能利用更多的特征,比MEMM更能抵抗标记偏置的问题. [gerative-discriminative.png] CRF训练 这类耗时的任务,还 ...

  8. less命令详解

    Linux less命令 less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件 语法: less [ ...

  9. datax 数据同步迁移

    https://github.com/alibaba/DataX/blob/master/mysqlwriter/doc/mysqlwriter.md https://github.com/aliba ...

  10. Hiero_FnNukeShotExporter的解析与修改

    研究对象:Hiero中的FnNukeShotExporter脚本 研究目的:修改FnNukeShotExporter使得可以将多个TrackItem导入到一个.nk中   FnNukeShotExpo ...