基础语法学习Day10
容器型数据类型
1.列表(list)
字面量:[元素1, 元素2, 元素3, …]、[]
元素的要求: 任何数据,可以重复
容器的特点: 可变、有序
元素增删改查:
列表[下标]
列表[开始下标:结束下标:步长]
for 变量 in 列表; for 下标,元素 in enumerate(列表);
操作: +、*、比较大小、比较相等、in 和 not in、max、min、sorted、len、list
相关方法:count、index、sort、reverse、copy…
2.元组(tuple)
字面量:(元素1, 元素2, 元素3, …)、()、(元素,)、 元素1, 元素2, 元素3, …
元素的要求: 任何数据,可以重复
容器的特点: 不可变、有序
元素增删改查: 没有增删改,只有查
和列表查的方式相同
变量1, 变量2, … = 元组
变量1, *变量2, … = 元组
相关操作: 和列表一样
相关方法:count、index…
3.字典(dict)
字面量:{键1:值1, 键2:值2, 键3:值3, …}, {}
元素的要求: 键值对,键的要求是:不可变、唯一; 值的要求:任何数据,可以重复
容器的特点: 可变、无序
元素增删改查:
查:字典[key]、字典.get(key)/字典.get(key, 默认值)
增:字典[key] = 值、字典.setdefault(key, 值)、字典.update(字典2)
删: del 字典[key]、字典.pop(key)、字典.clear()
改: 字典[key] = 值
相关操作: 比较相等、in 和 not in、dict、len
相关方法:copy、fromkeys、…keys、values、items、…
4.集合(set)
字面量:{元素1, 元素2, 元素3, …}、set()
元素的要求: 不可变、唯一
容器的特点: 可变、无序
元素增删改查:
查:for 变量 in 集合
增: 集合.add(元素)、集合.update(序列)
删: 集合.remove(元素)、集合.discard(元素)
相关操作: 比较相等、in 和 not in、set、len、数学集合运算(|, &, -, ^, >, <, <=, >=)
相关方法:
5.字符串(str)
字面量:‘字符集’、“字符集”、’’‘字符集’’’、…
元素的要求: 任何字符
容器的特点: 不可变、有序
元素增删改查:
查: 和列表一样
相关操作: 和列表基本一样
相关方法:40多个(join、replace、split、count、index、strip,…)
函数就是变量
定义函数的时候,其实就是在定义一个类型是function的变量,函数名就是变量名。
普通变量能做的事情函数都可以做
def a():
print('函数1')
c = lambda x: x*2
"""
def c(x):
return x*2
"""
b = [1, 2, 3]
# 1)查看变量类型
print(type(b)) # <class 'list'>
print(type(a)) # <class 'function'>
print(id(b))
print(id(a))
# 2) 使用变量中保存的数据
print(b) # [1, 2, 3]
print(a) # <function a at 0x10efe85f0>
b2 = b
print(b2[1])
a2 = a
a2()
# 3) 修改变量的值
b = 100
print(b)
a = 'abc'
print(a)
# 4) 变量可以作为列表元素
x = 100
def y():
return 'abc'
list1 = [x, y, y()]
print(list1) # [100, <function y at 0x10753d830>, 'abc']
print(list1[0] * 2, list1[0] % 10) # 200 0
print(list1[2][0], list1[2].replace('a', 'A')) # a Abc
print(list1[1]()) # abc
# 面试题
list1 = []
for i in range(5):
list1.append(lambda x: x*i)
# f = lambda x: x*i
# list1.append(f)
# def f(x):
# return x*i
# list1.append(f)
# list1 = [lambda x: x*i, lambda x: x*i, lambda x: x*i, lambda x: x*i, lambda x: x*i]
# i = 4
print(list1[1](2)) # 8
print(list1[2](2)) # 8
实参高阶函数
**a.普通变量可以作为函数的参数
b.函数可以作为函数的参数
c.将函数的返回值作为实参
**
1.实参高阶函数
如果一个函数的参数是函数,那么这个函数就是实参高阶函数
怎么确定调用函数的时候参数传什么值
# 看这个参数在函数中是怎么使用的
def func2(x):
print(x + 10)
func2(20)