1.定义                                                                                              

  映射:通过名字来引用的数据结构。与前面说的数据结构不同,一个是通过下标的数字,一个是通过名称。

  字典是python中唯一内建的映射类型。字典中的值并没有特殊的顺序,但都是存储在一个特定的键下。键可以是数字、字符甚至是元组。

  字典由多个键及其对应的值构成的键-值对组成。

 phonebook={'Tom':'','Beth':''}
names={}

   dict函数,可以通过此函数映射或者对的序列建立字典。

  len(d)函数,返回d中键值对的数量

  d[k],返回关联到键k上的值

  d[k]=x,将值x关联到键k上

  del d[k],删除键为k的项

  k in d,检查键k是否在d中。

 items=[('name','Gumby'),('age',22)]
print(items) d=dict(items)
print(d) print(len(d))
print(d['name']) d['age']=12
print(d)
print('age' in d)

  字典的键可以是任意不可变的类型。

1.1字典的格式化字符串  

  通过前面,我们知道了字符串的格式化,传入的参数我们可以使用元组等序列,当然字典也可以同样实现。如下:

template='''
<html>
<head>
<title>%(title)s</title>
</head>
<body>
<h1>%(title)s</h1>
<p>%(text)s</p>
</body>
</html>
'''
data={'title':'My Home Page','text':'Welcome to my home page!'} print(template %data)

  通过上面的例子,我们发现,我们可以很好的利用此特性来完成一些比较特殊的任务。除了增加的字符串键以外,转换说明符还是和以前一样。当以这种方式使用字典时,只要给出的键都能在字典中找到,就可以使用任意数量的转换说明符。

1.2字典的方法

  1.clear方法,清楚字典中的所有项

  2.copy方法,返回一个具有相同键值对的字典

  3.fromkeys方法,使用给定的键建立新的字典,每个键都对应一个默认的值None

  4.get方法,根据键名,返回对应的值

  5.has_key方法,检查当前字典是否包含有特定的键

  6.items方法,将字典索引的项以列表的方式返回;iteritems方法,与items大致相同,但是会返回一个迭代器,而不是列表

  7.keys方法,将字典中的键以列表形式返回,而iterkeys方法,则返回针对键的迭代器

  8.pop方法,获得对应与给定键的值,然后将这个键值对从字典移除

  9.popitem方法,随机返回一个键值对

  10.setdefault方法,与get方法类似,获取给定键的值,若当前键在字典中不存在,则返回设置的默认值

  11.update方法,利用一个字典更新另外一个字典

  12.values方法,以列表的形成返回字典中的值;而itervalues方法,返回一个值的迭代器

 d={'title':'My Home Page','text':'Welcome to my home page!'}
print(d)
d.clear()
print(d) d={'title':'My Home Page','text':'Welcome to my home page!'}
f=d.copy()
print(d)
print(f) print({}.fromkeys(['name','age'])) print(d.get('title')) print(d.keys())

2.基本语句                                                                                        

2.1print和import                                                                                                         

  1.使用逗号输出,在前面已经提到过print来打印结果,不管是字符串还是其他类型进行自动转换后的字符串,在打印多个表达式时,可以使用逗号将其隔开。

  2.import,从模块中导入函数

 print('Age:',22)

 import math
from math import pi
from math import *

2.2赋值魔法                                                                                                                   

  1.序列解包:将多个值的序列解开,然后放到变量的序列中,也叫递归解包

 x,y,z=1,2,3
print('x:',x,',y:',y,',z:',z) x,y=y,x print('x:',x,',y:',y,',z:',z) values=1,2,3
x,y,z=values
print('x:',x,',y:',y,',z:',z)

  通过以上我们可以看出,解包的序列中的元素必须和防止在赋值符号=左边的变量数量完全一致 

  2.链式复制:将同一个值赋给多个变量的捷径。例如:x=y=1

   3.增量复制:增量复制为链式复制的一种特殊情况,例如:x=1;x+=1

2.3语句块:缩排的乐趣                                                                                                  

  语句块是字条件为真时执行或者执行多次的一组语句。在代码前放置空格来缩进语句即可创建语句块。一般情况下,我们使用4个空格

2.4条件和条件语句                                                                                                        

  条件,我们都知道,在不同的语言中,相信都有类似的表达方式,在python中,根据条件我们可以知道他 究竟返回的是真(true)或者假(false)。在python中,false、None、0、""、()、[]、{}返回false,其他情况下返回true。

  1.if,else,elif语句,通过这三者之间的连接,我们可以对我们的逻辑进行不同的判断筛选。

 num=input('Enter a number:')
if num>0:
print('The number is positive')
elif num<0:
print('The number is negative')
else:
print('The number is zero')

  2.比较运算符:

python比较运算符
表达式 描述
x==y x等于y
x<y x小于y
x>y x大于y
x<=y x小于等于y
x>=y x大于等于y
x!=y x不等于y
x is y x和y是同一个对象
x is not y x和要是不同的对象
x in y x是y容器 的成员
x not in y x不是y容器的成员

  3.断言,在程序中,迟早会出现崩溃,不如在错误条件出现时就让它崩溃,这样避免给后续的业务造成不可估量的损失。通常我们使用是哦那个assert进行断言,例如:age =10;assert 1<age<10;

如果age在这个地方不满足条件时,就会抛出异常,不再执行下面的语句。

2.5循环                                                                                                                       

  1.循环,while、for

 x=1
while x<=100:
print(x)
x+=1 words=['this','is','an','ex','parrot']
for word in words:
print(word) for number in range(1,100):
print(number)

  2.字典循环遍历

 d={'x':1,'y':2,'z':3}
for key,value in d.items():
print(key,' corredponds to',value)

  3.并行迭代,通常使用zip方法将两个个数相同的列表,通过对应的下标合并为一个元组的列表。

names=['anne','beth','george','damon']
ages=[12,23,34,45]
for i in range(len(names)):
print(names[i],'is',ages[i],'years old') zips=zip(names,ages)
print(zips) for name,age in zips:
print(name,'is',age,'years old')

  4.翻转和排序迭代。及reversed方法和sorted方法

 print(sorted([2,5,4,3,1]))

 print(sorted('Hello,world!'))

 print(''.join(list(reversed('Hello,world!'))))

  5.跳出循环。目前有两种方式,continue:结束当前迭代,跳转到下一个迭代中;break,结束当前整个循环,之前循环外的后续代码。

2.6列表推导式----轻量级循环                                                                                         

  列表推导式,利用其他列表创建新的列表的一种方法。工作方式类似于for循环。

 d=[x*x for x in range(10)]
print(d) d=[x*x for x in range(10) if x%3==0]
print(d) d=[(x,y) for x in range(3) for y in range(3)]
print(d)

  列表推倒时对我们有十分巨大的用处,特别是在构建某些对象时。

3.写在最后                                                                                      

  如果对你有一定的帮助,麻烦点个

 若需要转载,请标明出处!

Python基础系列----字典、基本语句的更多相关文章

  1. python基础之字典dict和集合set

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...

  2. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  3. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  4. python基础系列教程——Python中的编码问题,中文乱码问题

    python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...

  5. python基础系列教程——Python3.x标准模块库目录

    python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata ...

  6. python基础系列教程——Python库的安装与卸载

    python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...

  7. python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda

    ---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...

  8. 『Python基础-6』if语句, if-else语句

    # 『Python基础-6』if语句, if-else语句 目录: 条件测试 if语句 if-else语句 1. 条件测试 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为 ...

  9. Python | 基础系列 · Python为什么没有switch/case语句?

    与我之前使用的所有语言都不同,Python没有switch/case语句.为了达到这种分支语句的效果,一般方法是使用字典映射: def numbers_to_strings(argument): sw ...

随机推荐

  1. 配置好solr搜索引擎服务器后java后台如何将商品信息导入索引库

    首先,在配置文件目录中添加solr 服务器的bean 配置文件 solr服务器的url可以写在配置文件中: url地址其实就是我们网页可以访问的solr地址: 然后我们写 service packag ...

  2. Codeforces Round #511 (Div. 2):C. Enlarge GCD(数学)

    C. Enlarge GCD 题目链接:https://codeforces.com/contest/1047/problem/C 题意: 给出n个数,然后你可以移除一些数.现在要求你移除最少的数,让 ...

  3. bzoj 2124 等差子序列 树状数组维护hash+回文串

    等差子序列 Time Limit: 3 Sec  Memory Limit: 259 MBSubmit: 1919  Solved: 713[Submit][Status][Discuss] Desc ...

  4. json 拼二维json数组

    js声明数组 以及向数组中添加as移除json数据 JavaScript声明JSON数组的方法: //部分条件,在数据渲上数据要求是数组格式而非json数组格式,取arrayJson.dataList ...

  5. PowerDesigner逆向生成

    人越长大话越少,我们不再说今天受了委屈,不再说谁谁谁不理我了我好难过,不再分享生活中的琐事. 我知道人和人之间没法互相理解,大家都很忙,针也没扎在别人身上. 所以把那些还没说出口的话消化在每一步走过的 ...

  6. JS语句循环(100以内奇偶数、100以内与7先关的数、100以内整数的和、10以内阶乘、乘法口诀、篮球弹起高度、64格子放东西)

    3.循环 循环是操作某一个功能(执行某段代码). ①循环四要素: a 循环初始值 b 循环的条件 c 循环状态 d 循环体 ②for循环 a 穷举:把所有的可能性的都一一列出来. b 迭代:每次循环都 ...

  7. 超详细的Java面试题总结(一)之Java基础知识篇

    面向对象和面向过程的区别 面向过程:   优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用面向过程开发,性能是最重要的因 ...

  8. HDU - 5327 Olympiad(一维前缀和)

    Olympiad Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem ...

  9. vue实现微信对话

    因为项目中需要实现仿微信对话功能,于是抽空实现了下,主要是h5的canvas的把图片和文字绘制到画布上 原文来自我的个人博客:http://lvhww.com/index.php/archives/6 ...

  10. Webview 中FaultyInfo代码说明

    class FaultyInfoHandler(tornado.web.RequestHandler): def get(self): import xmlrpc.client s = xmlrpc. ...