python基础06
3.4.4字典_删除
(1)pop()
可以指定键名进行删除,并且可以返回删除的数据。如果没有这个键,则报错
(2)popitem()
用来删除键值对,从末尾删除数据,并且可以返回删除的数据
(3)del 和 del()
可以指定键名进行删除,也可直接删除字典
(4)clear()
字典名.clear()可以清空字典,得到一个空字典,返回None
3.4.5字典常用操作
(1)len():测量字典中键值对的个数
(2)keys:字典名.keys()
返回一个包含字典所有键名的列表
(3)values:字典名.values()
返回一个包含字典所有值的列表
(4)items:字典名.items()
返回一个包含所有(键,值)元组的列表
(5)has_key (注意:在python3中没有这个方法了,python2中有)
dict1.has_key(key)如果key在字典中,返回True,否则返回False
3.4.6字典的遍历
(1)遍历字典的key(键)
for temp in dict1.keys()
print(temp)
(2)遍历字典的value(值)
for temp in dict1.values()
print(temp)
(3)遍历字典的项(元素)
for temp in dict1.items()
print(temp)
(4)遍历字典的键值对
for temp in dict1.items()
print("%s:%s"%(temp[0],temp[1]))
Or:
for key,value in dict1.items()
print(key)
print(value) #注:此处的key和value可以是其它字母
(5)实现带下标索引的遍历
chars = [‘a’, ‘b’, ‘c’, ‘d’]
i = 0
for chr in chars:
print("%d %s"%(i, chr))
i += 1
Or:
chars = [‘a’, ‘b’, ‘c’, ‘d’]
for i, chr in enumerate(chars):
print i, chr
3.4.7字典推导式
需求:1:1,2:4,3:9…
dict1 = {i:i ** 2 for i in range(10)}
print(dict1)
字典推导式应用:
①将两个列表合并成一个字典☆☆☆
list1 = [‘name’,‘age’]
list2 = [‘gui’,‘30’]
dict1 = {list1[i]:list2[i] for i in range(len(list1))}
print(dict1)
②将一个字典拆成两个列表
dict1 = {‘name’:‘gui’,‘age’:18}
key_list = []
val_list =[]
for key,value in dict1.items():
key_list.append(key)
val_list.append(value)
print(key_list)
print(val_list)
3.5元组
元组与列表类似,但不同之处是元组中的元素是不可以改变的;若元组中套有列表或者字典,则套的列表或字典中的数据是可以修改的。元组用小括号。
例:
t3 = (1,2,[10,20,30])
t3[2][1] = 200
print(t3)
注意:创建元组时,如果元组中只有一个数据,还想要类型是元组,必须在数据后加逗号
3.5.1访问元组
通过下标就可以访问
3.5.2元组的内置函数index和count
用法和列表中相同
3.6 集合
注意:集合中的元素不能是可变数据类型,即:集合中的元素不能是列表、字典、集合
集合不支持下标,是无序的。用{}
作用:列表去重☆☆☆
例:
list1= [1,2,3,1,2]
print(list(set(list1)))
#对list1进行去重
3.6.1创建集合set()
(1)手动创建:set = {1,2,3}
(2)用set方法创建(创建空集合时仅能用此方法)
set1 = set()
3.6.2集合添加数据
(1)add():一次添加一个数据
set1.add(100)
(2)update()添加多个数据,参数是一个列表
set1.update([1000,2000,3333])
3.6.3集合删除数据
(1)remove() 没有就报错
set1.remove(1000)
(2)pop()
用pop删除数据,删除的是第一个数据,而且会返回删除的数据
set1.pop(2000)
(3)discard()
删除指定数据,如果没有这个数据,不做任何事
set1.discard(3333)
(4)del
3.6.4集合推导式
set2 = {i for i in range(10) if i%2 == 0}
print(set2)
3.6.5集合运算
(1)交集:&
(2)并集:| 包含所有不重复的数据
(3)差集:- 取减号前面的集合有的数据后面没有的数据
3.7拆包形式
(1)用for遍历
dict1 = {‘name’: ‘python’, ‘age’: 28}
for key,value in dict1.items():
print(key)
print(value)
(2)用变量赋值
s1, s2 = dict1.popitem()
print(s1)
print(s2)
d1, d2 = dict1
print(d1)
print(d2)
print(dict1[d1])
print(dict1[d2])
3.8公共方法
运算符
运算符 | Python 表达式 | 结果 | 描述 | 支持的数据类型 |
---|---|---|---|---|
+ | [1, 2] + [3, 4] | [1, 2, 3, 4] | 合并 | 字符串、列表、元组 |
* | [‘Hi!’] * 4 | [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] | 复制 | 字符串、列表、元组 |
in | 3 in (1, 2, 3) | True | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 4 not in (1, 2, 3) | True | 元素是否不存在 | 字符串、列表、元组、字典 |
+
>>> "hello " + "itcast"
'hello itcast'
>>> [1, 2] + [3, 4]
[1, 2, 3, 4]
>>> ('a', 'b') + ('c', 'd')
('a', 'b', 'c', 'd')
*
>>> 'ab' * 4
'ababab'
>>> [1, 2] * 4
[1, 2, 1, 2, 1, 2, 1, 2]
>>> ('a', 'b') * 4
('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b')
in
>>> 'itc' in 'hello itcast'
True
>>> 3 in [1, 2]
False
>>> 4 in (1, 2, 3, 4)
True
>>> "name" in {"name":"Delron", "age":24}
True
注意,in在对字典操作时,判断的是字典的键
python内置函数
Python包含了以下内置函数
序号 | 方法 | 描述 |
---|---|---|
1 | len(item) | 计算容器中元素个数 |
2 | del(item) | 删除变量 |
3 | max(item) | 返回容器中元素最大值 |
4 | min(item) | 返回容器中元素最小值 |
5 | range(start, end, step) | 生成从start到end的数字,步长为 step,供for循环使用 |
4.函数
4.1自定义函数
(1)定义函数的语法:
def 函数名(参数):
命令
(2)调用函数的语法:
函数名()
4.2函数的参数
(1)参数
参数分为形参和实参
函数定义时候写的参数是形参(形式上存在的)
函数调用的时候书写的参数是实参(实际真实存在的参数)
(2)注意
注意个数(定义和调用个数相等); 注意顺序(传参要一致) – 位置参数
一个参数只能接收一个值
参数定义顺序:位置参数——默认参数——不定长参数
4.3函数的返回值
(1)想要获得函数的返回值,用return关键字
return的作用:①返回值②会打断程序的执行
如果有多个返回值,会以元组的方式返回
(2)多个返回值:
例如:
def func1():
return 1+1,2+2 #多个返回值时必须是这样的格式:return 值1,值2
num1,num2 = func1()
print(num1)
print(num2)
4.4四种函数的类型
(1)没有参数,没有返回值
(1)没有参数,有返回值
(1)有参数,没有返回值
(1)有参数,有返回值
4.5函数关键字参数
关键字参数的概念仅仅针对函数的调用
关键字参数不受位置(顺序)的限制
例如:
def func1(name, age):
print(name)
print(age)
func1(name=‘python’, age=28) # name和age不能添加引号
注意:位置参数和关键字参数可以混用,但是关键字参数要放在位置参数的后面
如:func1(‘python’,age=2)
只要用了关键字参数,以后针对这个参数传值就必须是关键字形式传递
不需要注意传值的参数顺序
如果关键字传值,程序直接能观察出键和值的对应关系