1、认识python数据结构
数据结构:根据某种方式将数据元素组合起来形成的一个数据元素集合
包含序列、映射和集合三种
[0.0,0.7,1.4,2.09]
2、创建列表
常用的数学函数
创建列表并进行增删改查操作
#创建列表
all_in_list=[0.25,'hello',True,[2.3,1.5]]
list_example=list('ABCD')
print(all_in_list)
print(list_example)
#列表的索引及切片
print(all_in_list)
all_in_list[1] #索引操作
all_in_list[-3] #'hello'
all_in_list[0:2] #切片操作
all_in_list[-4:-2] #不能[-2:-4],因为总是从左向右切
all_in_list[:3] #[0.25,'hello',True]
all_in_list[:] #取所有
#切片返回的值保留其结构,索引返回的是具体的值
为列表新增元素
#为列表新增元素
print(all_in_list)
all_in_list.append(0.78) #在列表末尾追加一个元素
all_in_list.append([1,2]) #将待添加元素作为一个整体追加至目标列表的末尾
all_in_list.extend([1,2]) #将待添加元素的各个元素分别追加至目标列表的末尾
all_in_list.insert(1,'word') #在指定位置插入相应元素
[1,2]+[3,4] #将两个列表中的元素进行合并
out
[0.25, 'word', 'hello', True, [2.3, 1.5], 0.78, [1, 2], 1, 2]
[1, 2, 3, 4]
#删除列表中的元素
print(all_in_list)
all_in_list.remove('hello') #删除列表中的指定元素
del all_in_list[0:2] #删除列表中的多个元素
del all_in_list #删除列表本身
out
[0.25, 'hello', True, [2.3, 1.5]]
[0.25, True, [2.3, 1.5]]
[[2.3, 1.5]]
#修改列表中的元素
all_in_list=[0.25,'hello',True,[2.3,1.5]]
all_in_list[0]=125 #通过赋值来修改列表中的元素
out
[0.25,'hello',True,[2.3,1.5]]
[125, 'hello', True, [2.3, 1.5]]
3、列表推导式
#列表推导式
x=[] #构建一个空列表
for i in range(1,11):
x.append(i)
X_new=[i for i in range(1,11)] #通过列表推导式来构建一个具有特定规则的列表
print(X_new)
[i**2 for i in range(1,11)] #前面部分是列表返回值,后面是对前面列表的解释
out
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
in [i**2 for i in range(1,11)]
out [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
4、任务实现—求曲边图形的面积
import math
n=1000 #划分的小矩形个数
#1.将图形等份划分,得到若干小矩形(构建x序列)
width=2 * math.pi/n #每个小矩形的宽度
# x=[0*width,1*width,...(n-1)*width]
x=[i*width for i in range(0,n)] #x序列
#2.求出小矩形的高度
s=[abs(math.sin(i))*width for i in x]
#3.将各高度乘以宽度,得各小矩形面积,最后求和
sum(s)
5、创建字典并进行增删改查操作
键—值成对出现;键不能重复;键不可更改、值可修改;键来索引值
# 创建字典
dict_first = {
'the': 2,
3.4: [3.5, 4],
'hello': 'world'
}
# 字典的增删改查操作
dict_first['the'] # 通过键来索引对应的值
dict_first['the'] = 101 # 修改字典中的值
dict_first['world'] = 2.5 # 通过赋值来新增键值对
dict_first.update({'hello world': 3, 4.5: [2.3, 1.2]}) #增加多个
del dict_first['world'] # 删除字典中的指定的键值对
dict_first.keys() # 访问字典的所有键
dict_first.values() # 访问字典的所有值
dict_first.items() # 访问字典的所有元素
second_dict = {i: i ** 2 for i in range(1, 11)} # 字典推导式
6、任务实现—单词词频统计
处理字符串
将句子拆分成各单词
统计每个单词频次
记录汇总
# 任务实现:统计单词词频
lyric = 'The night begin to shine, the night begin to shine'
lyric = lyric.lower() # 将所有字母转为小写形式
words = lyric.split() # 将句子拆分成多个单词
word_freq = {} # 构建一个空字典,用于后续记录各单词的频次
for word in words: #访问字典中的所有单词
if word in word_freq.keys(): # 判断当前访问的单词是否在字典中
word_freq[word] += 1 # 若在,则将该单词对应键的值加一
else:
word_freq[word] = 1 # 若不在则以该单词为键创建一个键值对,且赋值为一