1. dict字典
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
a. 定义
字典的组成:字典是由大括号{ }来包含其数据的,大括号内包含键和其对应的值,一对键和值成为一个项。键和值用冒号:隔开,项和项之间用逗号,号隔开。
空字典就是不包含任何项的大括号,像{ }这样就是一个空字典。 如:{‘name’: ‘wangyao’, ‘age’: 18} 、{‘host’: ‘hh’, ‘port’: 80} 注意:字典的键必须是不可变数据类型,如果用元组做键,那必须要保证元组内的对像也是不可变类型。可变数据类型对像不能做键。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
b. 创建
比如d = { ‘name1’ : number1 , ‘name2’ : number2 }
字典是无序的,不能用索引下标那样的方法查找。它有自己特有的方法,就是通过键来查找。
>>>变量名[键名]
值
c. 字典的方法
添加
字典添加方式如列表不同:字典变量名[新添加的键名] = 新键对应的值
删除
字典修改格式:字典变量名[要修改值对应的键名] = 新值
修改
字典删方法常见有三种,作用也不同。下面简单说下这些方法的格式,具体作用和技巧类的方法在深入学习时会和大家介绍。
1、del方法:删除键对应的值,del空格 变量名[键名],如果只写变量名就是删除此字典
2、clear方法:清空字典内容,变量名.clear()
3、python pop方法:删除键对应的值,但它会把对值的应输出后再删除
ps :获取所有的键(key) 用keys()函数,获取所有的值(values)用values()函数,获取所有键值对 用items()函数
也可以用for 进行遍历里面的键或者值
2. 集合set
a… 特性
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合。
b 创建
创建一个1,2,3的集合
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。。
重复元素在set中自动被过滤
>>> s = set([1,1,2, 2, 3])
>>> s
{1, 2, 3}
c. 方法
add()
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
remove(key)
>>> s.remove(4)
>>> s
{1, 2, 3}
replace()
对于可变对象,比如list,对list进行操作,list内部的内容是会变化的,比如:
>>> a = ['c', 'b', 'a']
>>> a.sort()
>>> a
['a', 'b', 'c']
而对于不可变对象,比如str,对str进行操作呢:
>>> a = 'abc'
>>> a.replace('a', 'A')
'Abc'
>>> a
'abc'
虽然字符串有个replace()方法,也确实变出了’Abc’,但变量a最后仍是’abc’,应该怎么理解呢?
我们先把代码改成下面这样:
>>> a = 'abc'
>>> b = a.replace('a', 'A')
>>> b
'Abc'
>>> a
'abc'
要始终牢记的是,a是变量,而’abc’才是字符串对象!有些时候,我们经常说,对象a的内容是’abc’,但其实是指,a本身是一个变量,它指向的对象的内容才是’abc’:
┌───┐ ┌───────┐
│ a │─────────────────>│ ‘abc’ │
└───┘ └───────┘
当我们调用a.replace(‘a’, ‘A’)时,实际上调用方法replace是作用在字符串对象’abc’上的,而这个方法虽然名字叫replace,但却没有改变字符串’abc’的内容。相反,replace方法创建了一个新字符串’Abc’并返回,如果我们用变量b指向该新字符串,就容易理解了,变量a仍指向原有的字符串’abc’,但变量b却指向新字符串’Abc’了:
┌───┐ ┌───────┐
│ a │─────────────────>│ ‘abc’ │
└───┘ └───────┘
┌───┐ ┌───────┐
│ b │─────────────────>│ ‘Abc’ │
└───┘ └───────┘
所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
3. 判断语句
与C语言不同的是,C语言采用{ }进行条件语句限制。Python采用的是缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做。
也可以给if添加一个else语句,意思是,如果if判断是False,不要执行if的内容,去把else执行了。
C语言当中的else if在Python中的格式改为了elif。
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
4. 三目表达式
x= 50
y = 25
small = x if x<y else y
print(small)
结果1 if 条件 else 结果2
没有冒号
5. 循环语句
for…in循环
Python的循环有两种,一种是for…in循环,依次把list或tuple中的每个元素迭代出来
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
得到结果55
while循环
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
break
在循环中,break语句可以提前退出循环
n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前循环
print(n)
n = n + 1
print('END')
continue
用continue语句跳过某些循环
n = 0
while n < 10:
n = n + 1
if n % 2 == 0: # 如果n是偶数,执行continue语句
continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
print(n)