空闲时间的时候学了Python ,刚学完了数据容器 本人觉得类型有点复杂 种类太多 而且会和后面的pycharts包有联系 所以写了一篇文章 帮助和我一样 刚刚学习Python的新手们(有错误的话 请见谅 可以私聊我,谢谢)
之后又写了一篇补充如何从复杂字典取出列表的博客 名字叫 pyecharts 的基础使用(Line Map Bar
大家可以看看
目录
在了解数据容器之前 我们需要明白 Python 在不同的数据容器之间 使用了不同的括号包括
列表的: [ ]
元组的:( )
字符串的: " "
集合的: { }
字典的:{"key": "value" }
所以弄清这些括号才是关键
列表:
说到列表 如果有一定的C语言基础 就会觉得和数组有一定的相似性
比如 : 可以利用下标查找元素 或者 对目标元素进行更改
首先 创建一个空列表
my_list = []
在知道创建空列表之后 就要往里面加入元素 而元素的类型包括 数字 、字符串、 列表、 元组、字典等(基本上都可以加入) 因为加入元素的方法都一样 所以接下来就用字符串(使用范围大)
1.列表的追加
语法:
my_list.append('a')
print(my_list)
结果输出是 ‘a’
每次只能对一个元素进行追加 如果写成:
my_list.append('b', 'c', 'd', 'e')
就会报错
下面就是追加 列表 的一个例子
my_list = [['a'], ['b']]
my_list1 = []
my_list1.append(my_list)
print(my_list1) # [[['a'], ['b']]]
2.列表的插入
为了更好的展示 我们对my_list默然一个初始值
my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
插入语法 : 列表.insert(下标,元素) 在指定的下标位置 插入指定的元素
my_list.insert(下标,元素)
(注意 列表的下标从零开始哦 也就是 元素‘a’的下标是 0 )
my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
my_list.insert(1,'z')
print(my_list)# ['a', 'z', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
3.列表的查找下标
语法:
index = my_list.index(元素)
如果我们要查找元素 z 可以这样操作
my_list = ['a', 'z', 'c', 'd', 'e', 'f', 'g', 'h']
index = my_list.index('z')
print(index)# 1
4.列表的修改
元素的修改可以配合查找下标进行 如果要对 ‘z’ 进行修改 根据 ‘z’ 的下标
my_list = ['a', 'z', 'c', 'd', 'e', 'f', 'g', 'h']
index = my_list.index('z')
my_list[index] = 'y'
print(my_list)# ['a', 'y', 'c', 'd', 'e', 'f', 'g', 'h']
5. 列表的删除
有三个方法
(1) 直接删除
my_list = ['a', 'z', 'c', 'd', 'e', 'f', 'g', 'h']
del my_list[1]
print(my_list) # ['a', 'c', 'd', 'e', 'f', 'g', 'h']
(2)pop 删除指定元素并返回
my_list = ['a', 'z', 'c', 'd', 'e', 'f', 'g', 'h']
element = my_list.pop(2)
print(element) # c
print(my_list) # ['a', 'z', 'd', 'e', 'f', 'g', 'h']
方法pop 里面放的是 删除元素的 下标
(3)remove 删除第一个与之匹配的元素
假设一个数字列表my_list
my_list = [1, 2, 3, 3, 4, 2, 2, 3, 4, 5]
my_list.remove(2)
print(my_list) # [1, 3, 3, 4, 2, 2, 3, 4, 5]
有一点要注意 pop里面是元素的下标 而 remove里面的是指定元素
6.列表的基本功能
(1)统计某个元素的个数
my_list = [1, 2, 3, 3, 4, 2, 2, 3, 4, 5]
count = my_list.count(2)
print(count) # 3
(2)统计列表中所有元素个数
my_list = [1, 2, 3, 3, 4, 2, 2, 3, 4, 5]
count = len(my_list)
print(count) # 10
(3)列表的遍历
一般咱们都用for循环
my_list = [1, 2, 3, 3, 4, 2, 2, 3, 4, 5]
for i in my_list:
print(i) # 1 2 3 3 4 2 2 3 4 5
OK啦 咱们列表就差不多了
元组:
元组是有序且不可更改的集合
1.有序
有序 代表着可以用下表进行查找之类的
(1)查找下标
my_tuple = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
index = my_tuple.index('a')
print(index) # 0
(2)循环遍历
for i in my_tuple:
print(i) # a b c d e f g h)
基本上元组的功能和列表差不多 但是 不能更改
2.不可更改
说到不可更改 像删除 追加 之类的都不可以用
但是可以将元组变成列表 再变成元组 如下:
my_tuple = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
my_list = list(my_tuple)
print(type(my_list))
print(my_list)
# type() 输出变量的类型
my_list.append('i')
my_tuple = tuple(my_list)
print(type(my_tuple))
print(my_tuple )
元组 my_tuple 通过list 转化为 列表类型 的数据容器
再通过列表的修改方法 进行修改
再通过tuple转化为元组类型的数据容器
字符串:
字符串的修改 和 列表差不多哦 但是还是举个例子吧
1.查找下标
my_str = "为中华之崛起而读书"
index = my_str.index("中")
print(index)
2.字符串的替换
my_str = "为中华之崛起而读书"
my_str.replace("中华","中华民族")
print(my_str ) # 为中华民族之崛起而读书
3.字符串的拼接
str1 = "hello"
str2 = "world"
str3 = str1 + str2
print(str3)
4.字符串的分割(本人觉得挺重要的)
字符串再被分割后 就会变成 列表 hhhh
以下就是 具体操作
my_str = "h, e, l, l, o, w, o, r, l, d"
my_list = my_str.split(",")
print(type(my_list))
print(my_list)
好 我来解释一下 这个split到底是什么作用
my_str = "h, e, l, l, o, w, o, r, l, d"
my_list = my_str.split(",")
将字符串里面的 “ ,” 隔开 然后 组成一个以字符为元素的列表
结果就是:
my_str = "h, e, l, l, o, w, o, r, l, d"
my_list = my_str.split(",")
print(type(my_list)) # <class 'list'>
print(my_list) # ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
5.字符串计数
就是某个特定的字符的个数
my_str = "hello, world, hello"
count = my_str.count("hello")
print(count) # 2
集合:
其实和列表操作差不多的 就是不能重复元素 和 查找下标
集合的括号和字典的一样 都是{} 但是有点细节不一样 (注意集合里面的元素不能重复)
1.创建集合
my_set = set()
嗯? 最奇怪的是创建集合 是这个() 记住就好
2.集合的添加
my_set = {"hello", "world", "Python", "java"}
my_set.add("C")
print(my_set) # {'hello', 'world', 'Python', 'java', 'C'}
3.集合的删除
my_set = {"hello", "world", "Python", "java"}
my_set.remove("hello")
print(my_set) # {'world', 'Python', 'java'}
4.取出集合1有的 而集合2 没有的
set1 = {1, 2, 3, 4, 5}
set2 = {2, 3, 4, 5, 6}
set3 = set1.difference(set2)
print(set3)# {1, 5}
5.合并集合
set6 = {1, 2, 3, 4, 5}
set7 = {2, 3, 4, 6, 7}
set8 = set6.union(set7 )
print(set8) # {1, 2, 3, 4, 5, 6, 7}
OK
字典:
本人是学完C语言 在来学Python的 当我一看到字典 就发现 怎么和 结构体的用法差不多的
然后又学了pycharts 就发现 字典 还是很难的 因为 它里面嵌套了列表 元组什么的
而且函数传参 不知道是以列表 还是 元组 还是 字典 还是 字典里面套列表 还是 字典里面套元组?
先不说这个 下一篇再讨论
说到字典 先给出一个代码
my_dict = {"key":"value"}
my_dict = {"小明":85, "小红":90, "小黑":80}
这个key 和 value 是什么嘞
以下一行代码为例子
考试成绩 小明 小红 小黑 就是key , 85 90 80 就是value
如果听不懂的话 可以去B站找点视频看看
以上是最简单的字典 接下来给大家上点难的( 但是 value也可以是字典 hhhh)
my_dict = {
"小明":{
"语文":90,
"数学":78,
"英语":87
},
"小红":{
"语文":70,
"数学":88,
"英语":97
},
"小黑":{
"语文":98,
"数学":89,
"英语":89
}
}
大家知道什么是key 什么是value吗
"小明" 是key 各科成绩是value 但是value是一个dict 里面又有语文 数学 英语这些key 而分数就是value
1.定义空字典
my_dict = {}
这就是为什么集合写成 my_set = set()的原因 因为 字典要用
2.添加新元素
my_dict = {"小明":85, "小红":90, "小黑":80}
my_dict["小天"] = 98
print(my_dict) #{'小明': 85, '小红': 90, '小黑': 80, '小天': 98}
3.元素的删除
my_dict = {"小明":85, "小红":90, "小黑":80}
score = my_dict.pop("小明")
print(score) # 85
print(my_dict) #{'小红': 90, '小黑': 80}
和列表差不多
你们肯定能理解 我就不说了
4.获取全部key
(1)法一
先这样
my_dict = {"小明":85, "小红":90, "小黑":80}
keys = my_dict.keys()
print(keys) # dict_keys(['小明', '小红', '小黑'])
然后这样
for key in keys:
print(key)# 小明 小红 小黑
(2)法二
这个方法就比较简单 灰常推荐
my_dict = {"小明":85, "小红":90, "小黑":80}
for key in my_dict :
print(key)
这样就搞定了
5.统计字典的长度
my_dict = {
"小明":{
"语文":90,
"数学":78,
"英语":87
},
"小红":{
"语文":70,
"数学":88,
"英语":97
},
"小黑":{
"语文":98,
"数学":89,
"英语":89
}
}
print(len(my_dict)) # 3
其实统计的就是key
切片
因为切片适用于所以数据容器
所以就放到了最后 顺便总结一下
所用数据容器切片都差不多
# 序列的常规操作
# 切片: 从一个序列中 取出一个子序列
# 语法 序列[起始下标:结束下标:步长]
# 完成切片以后 会得到一个新序列
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
mynewlist = my_list[2:6]
print(mynewlist) # [3, 4, 5, 6]
mynewlist1 = my_list[5:0:-1]
mynewlist1 = my_list[5::-1]
print(mynewlist1) # [10, 9, 8, 7, 6, 5]
# 步长为负数 反向取(注意 起始下标 和 结束下标 也要反过来)
# 结束下标不包含 起始下标包含
# 作用:
# 可以反转字符
# 可以去特定的元素
OK 咱们的数据容器总结就到这里了 感谢大家可以看到这 算是对我的一种鼓励 蟹蟹