python数据分析学习笔记
第四节
一、字典的创建
1、可以通过{}、dict()来创建字典对象
。
>>> a = {'name':'hyh','age':18,'job':'programmer'}
>>> b = dict(name='hyh',age=18,job='programmer')
>>> a = dict([("name","hyh"),("age",18)])
>>> c = {} #空的字典对象
>>> d = dict() #空的字典对象
2、通过 zip()创建字典对象
>>> k = ['name','age','job']
>>> v = ['hyh',18,'techer']
>>> d = dict(zip(k,v))
>>> d {'name': 'hyh', 'age': 18, 'job': 'techer'}
3、通过 fromkeys 创建值为空的字典
>>> a = dict.fromkeys(['name','age','job'])
>>> a
{'name': None, 'age': None, 'job': None}
二、字典元素的访问
1、通过 [键] 获得“值”。若键不存在,则抛出异常。
>>> a = {'name':'hyh','age':18,'job':'programmer'}
>>> a['name'] 'hyh'
>>> a['age'] 18
>>> a['sex']
Traceback (most recent call last):
File "<pyshell#374>", line 1, in <module>
a['sex']
KeyError: 'sex
2、 通过 get()方法获得“值”。
>>> a.get('name') 'hyh'
>>> a.get('sex')
>>> a.get('sex','喝一壶')
'喝一壶'
3、列出所有的键值对
>>> a.keys()
dict_keys(['name', 'age', 'job'])
>>> a.values()
dict_values(['hyh', 18, 'programmer'])
4、列出所有的键,列出所有的值
>>> a.keys()
dict_keys(['name', 'age', 'job'])
>>> a.values()
dict_values(['hyh', 18, 'programmer'])
5、 len() 键值对的个数
6、检测一个“键”是否在字典中
>>> a = {"name":"hyh","age":18}
>>> "name" in a
True
三、字典元素添加、修改、删除
1、给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在, 则新增“键值对”。
>>>a = {'name':'hhyyhh','age':18,'job':'programmer'}
>>> a['address']='hyh'
>>> a['age']=16
>>> a
{'name': 'hhyyhh', 'age': 16, 'job': 'programmer', 'address': 'hyh'}
2、使用 update()将新字典中所有键值对全部添加到旧字典对象上。如果 key 有重复,则直 接覆盖。
>>> a = {'name':'hhyyhh','age':18,'job':'programmer'}
>>> b = {'name':'hhyyhhh','money':1000,'sex':'男的'}
>>> a.update(b)
>>> a
{'name': 'hhyyhh', 'age': 18, 'job': 'programmer', 'money': 1000, 'sex': '男的'}
3、字典中元素的删除,可以使用 del()方法;或者 clear()删除所有键值对;pop()删除指定 键值对,并返回对应的“值对象”;
>>> a = {'name':'hhyyhh','age':18,'job':'programmer'}
>>> del(a['name'])
>>> a
{'age': 18, 'job': 'programmer'}
>>> b = a.pop('age')
>>> b
18
4、. popitem() :随机删除和返回该键值对。
>>> a = {'name':'hhyyhh','age':18,'job':'programmer'} >>> a.popitem()
('job', 'programmer')
>>> a
{'name': 'hyh', 'age': 18}
>>> a.popitem()
('age', 18)
>>> a
{'name': 'hhyyhh'}
四、集合
集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典 中的“键对象”,因此是不能重复的且唯一的。
集合创建和删除
1、使用{}创建集合对象,并使用 add()方法添加元素
>>> a = {3,5,7}
>>> a {3, 5, 7}
>>> a.add(9)
>>> a
{9, 3, 5, 7}
2、使用 set(),将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则只保 留一个。
>>> a = ['a','b','c','b']
>>> b = set(a)
>>> b
{'b', 'a', 'c'}
3、remove()删除指定元素;clear()清空整个集合
>>> a = {10,20,30,40,50}
>>> a.remove(20)
>>> a
{10, 50, 30}
五、集合相关操作
Python 对集合也提供了并集、交集、差集等运算
>>> a = {1,3,'lcy'}
>>> b = {'he','it','lcy'}
>>> a|b #并集 {1, 3, 'lcy', 'he', 'it'}
>>> a&b #交集 {'lcy'}
>>> a-b #差集
{1, 3}
>>> a.union(b) #并集
{1, 3, 'sxt', 'he', 'it'}
>>> a.intersection(b) #交集
{'sxt'} >>> a.difference(b) #差集
{1, 3}
六、控制语句(重点)
1、单分支选择结构
if 语句单分支结构的语法形式如下: if 条件表达式: 语句/语句块 其中:
① .条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等。
②.语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致。
输入一个数字,小于 10,则打印这个数字【详细代码】
num = input("输入一个数字:")
if int(num)<10:
print(num)
2、条件表达式详解
在选择和循环结构中,条件表达式的值为 False 的情况如下:
False、0、0.0、空值 None、空序列对象(空列表、空元祖、空集合、空字典、空字 符串)、空 range 对象、空迭代对象。
其他情况,均为 True。这么看来,Python 所有的合法表达式都可以看做条件表达式,甚至 包括函数调用的表达式。
各种条件表达式【详细代码】
if 3: #整数作为条件表达式
print("ok")
f a:
a = [] #列表作为条件表达式,由于为空列表,是 False print("空列表,False")
s = "False" #非空字符串,是 True
if s
print("非空字符串,是 True")
c = 9
if 3<c<20:
print("3<c<20")
if 3<c and c<20:
print("3<c and c<20")
if True: #布尔值
print("True")
#结果
3<c<20
3<c and c<20
True
注:
·条件表达式中,不能有赋值操作符“=”
在 Python 中,条件表达式不能出现赋值操作符“=”,避免了其他语言中经常误将关系运 算符“==”写作赋值运算符“=”带来的困扰
3、双分支选择结构
双分支结构的语法格式如下:
if 条件表达式 :
语句 1/语句块 1
else:
语句 2/语句块 2
输入一个数字,小于 10,则打印该数字;大于 10,则打印“数字太大”【详细代码】
num = input("输入一个数字:")
if int(num)<10:
print(num)
else:
print("数字太大")
4、三元条件运算符
三元运算符格式:
条件为真时的值 if (条件表达式) else 条件为假时的值。‘
用三元运算符实现简洁,易读代码
num = input("请输入一个数字")
print( num if int(num)<10 else "数字太大")
5、多分支选择结构
多分支选择结构的语法格式如下:
if 条件表达式 1 :
语句 1/语句块 1
elif 条件表达式 2:
语句 2/语句块 2
.
.
.
elif 条件表达式 n :
语句 n/语句块 n [else:语句 n+1/语句块 n+1
]
输入一个学生的成绩,将其转化成简单描述:不及格(小于 60)、及格(60-79)、良 好(80-89)、优秀(90-100)。【详细代码】
#略
七、选择结构嵌套
选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了 代码的从属关系。
语法格式如下:
if 表达式 1:
语句块 1
if 表达式 2:
语句块 1
else:
语句块 3
else:
if 表达式 4:
语句块 4
输入一个分数。分数在 0-100 之间。90 以上是 A,80 以上是 B,70 以上是 C,60 以上是 D。60 以下是 E【详细代码】
#略
八、循环结构
循环结构用来重复执行一条或多条语句。
它的逻辑是:
如果符合条件,则反 复执行循环体里的语句。在每次执行完后都会判断一次条件是否为 True,如果 为 True 则重复执行循环体里的语句。
1、while 循环
while 循环的语法格式如下:
while 条件表达式:
循环体语句
利用 while 循环打印从 0-10 的数字。【详细代码】
num = 0 while num<=10:
print(num)
num += 1
利用 while 循环,计算 1-100 之间数字的累加和;计算 1-100 之间偶数的累加和。【详细代码】
num = 0
sum_all = 0 #1-100 所有数的累加和
sum_even = 0 #1-100 偶数的累加和
sum_odd = 0 #1-100 奇数的累加和
while num<=100:
sum_all += num
if num%2==0:
sum_even += num
else:sum_odd += num
num += 1 #迭代,改变条件表达式,使循环趋于结束
print("1-100 所有数的累加和",sum_all)
print("1-100 偶数的累加和",sum_even)
print("1-100 奇数的累加和",sum_odd)