【Python学习】3 数据分析必备知识

137 阅读6分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

在上一节学习了python数据类型中的数字类型,字符串,忘记了的小伙伴可以点击这里复习哟!

那么这一部分将总结非常非常常用的元组,列表,集合,字典。(注意哟,不管是后面的爬虫还是数据分析都是必须得学会的)。

[toc]

[Docker系列]3 Docker组件

1 python数据类型思维导图

2 列表

2.1 列表格式

python列表是任意对象的有序集合。列表内容写在[]中。任意对象意思这个列表中的每个元素可以是另一个列表,也可以是字符串等。如下所示。

list=["保罗","威少","韦德"]
print(list)
list1=[["保罗儿子","保罗老爸"],"威少","韦德"]
print(list1)

但是有的时候我们想取出某个元素,python大哥提供了切片。

2.2 列表中常用的方法

每个list中的元素都是从下标0开始。所以我们想取出“威少”应该这样取。

print(list[1])

那么我们如何看list列表有哪些方法怎么办呢?使用:help(list)查看。这里总结出常用的列表方法。

方法描述
list.append(x)在列表的末尾增加一个元素x
list.insert(i,x)在索引为i的位置插入元素x
list.remove(x)删除从左到右第一次出现的x
list.pop([i])删除列表给定位置的元素并返回它
list.clear()移除列表所有元素
list.count(x)放回元素x在列表中出现的次数
list.sort(key=None, reverse=Falsex)对列表元素进行排序
list.reverse(x)翻转列表
len(list)列表的元素个数
min(list)返回列表中最小元素

好了,到这里我们应该把这些方法试一试,看看是啥效果!

# coding:utf-8

#list
list=["保罗","威少","韦德"]
print(list)
list1=[["保罗儿子","保罗老爸"],"威少","韦德"]
print(list1)
print(list[1])
#测试remove方法 删除第一次出现的元素
list2=["保罗","威少","韦德","保罗"]
#测试count方法
list2.count("保罗")
print(list2)
#测试remove方法
list2.remove("保罗")
print(list2)
#测试sort方法
list2.sort()
#测试reverse方法
print(list2.reverse())
#测试insert方法
list2.insert(2,"科比")
print(list2)

2.3 列表的切片

切片,从字面意思可以猜到是切成一片一片的(现在真的饿了。。明天早上回家,准备就在实验室了,实验室暖和。)对,就是从列表中取出我们想要的一部分。下面我来看看。

假设我们的案例列表为

list3=[1,2,3,4,5,6,2,1]

如果我们想取出前面三个数字,这里用两种方法。

print(list3[0:3])#[1,2,3]注意哈 我们之前说好了 下标是从0开始的
print(list3[:3])#[1,2,3] 冒号在前面代表取前面几个数

如果我们把冒号放在后面呢?

print(list3[3:])#[4, 5, 6, 2, 1] 冒号在后面代表取出到末尾之间的数

上面取数的时候都是正数,里面可以是负数吗?必须碟!

print(list3[-3])# 6 从右边开始数第三个数
print(list3[-3:])#[6, 2, 1] 从右边到末尾之间的数

小结:列表的切片我们使用了“:”,如果“:”在数字x前面那么从左到右的x个数,相反则是从右到左的x个数。

2.4 列表的简单应用

  • 列表作为栈

栈是什么,具有先进后出的特点,比如咱们平时放盘子,从下往上放,但是取得时候是从上往下取,也就是先放的后取出,这就栈结构的特点。那么在面试算法题中比较典型的比如数制转换,单词逆序等

那么我们列表怎么模拟呢?要先进入,使用append,取出的时候从顶部取出pop。

#列表作为栈
stack=[1,2,3]
stack.append(4)
stack.append(5)
print(stack.pop())#5
print(stack.pop())#4
print(stack.pop())#3
  • 列表作为队列

栈的兄弟队列,但是性格一样容易冲突,干脆相反,队列的特点是先进先出。比较常见的情形就是我们排队买火车票了。

#列表作为队列
from collections import deque
deque1=deque(['威少',"保罗","库里"])
deque1.append("小库里")
deque1.append("里弗斯")
print(deque1.popleft())#威少
print(deque1.popleft())#保罗

3 元组

3.1 元组类型及切片

元组是由几个被逗号隔开的值组成。元组元素写在小括号()里

注意:元组的元素是不能修改的。有个好消息,大部分列表中的方法在此也是适用的,同时切片也可用。

tuple=('威少',"保罗","哈登")
#tuple[0]="库里" 不准修改!!
print(tuple)
print(tuple[:2])#('威少', '保罗')
print(tuple[2:])#('哈登',)
print(tuple[-1:])#('哈登',)

3.2 元组的简单运用

  • 如果想在单引号里面使用单引号本身,就需要使用转义字符('\')
print('what\'s your name')#what's you name\

3.3 字符串的系列操作

  • 先上思维导图 在这里插入图片描述
  • 字符串拼接 使用“”+“”运算符进行字符串的拼接,注意,两操作的运算符的类型需要一样哟,不一样可能需要转换一下。
str1=“abc”
str2="edf"
str=str1+str2
print(str)#abcedf
  • 求字符串的长度 我们来求下上面str的长度。
print(len(str))#6
  • 分割字符串 我们所使用的函数是split,str.split(sep, maxsplit).返回值为列表,参数sep默认为空格
str4="i am a boy"
print(str4.split())

运行结果 在这里插入图片描述

  • 格式化字符串 使用%操作符
stud = '学号:%d,姓名:%s,班级:%s'
print(stud % (123,'张三','一年级'))
#学号:123,姓名:张三,班级:一年级

-去除字符串空格或者特殊字符 所使用的方法是strip方法,这个方法会去除左右空格。如果我们只需要去除左边那么就是lstrip,如果是是右边就是rstrip。

str5="   i am a student"
print(str5.strip())
#i am a student
print(str5.rstrip())
   #i am a student
print(str5.lstrip())
#i am a student
  • 检索字符串 这里目前只介绍count和find。其中count用于检索指定字符串在另一个字符串中出现的次数,如果检索的字符串不存在则返回0,否则返回出现的次数。find检索是否包含指定的字符串,如果检索的字符串不存在则返回-1,否则返回首次出现该字符串时的索引
>>>str6="i am a student"
>>> print(str6.count('t'))
2
>>> print(str6.find('t'))
8
  • 字符串大小写转换
>>> str7="i am a student"
>>> print(str7.upper())#转换为大写
I AM A STUDENT
>>> print(str7.lower())#转换为小写
i am a student
>>> print(str7.capitalize())#第一个字符转换大写
I am a student
>>> print(str7.title())#转换为
>I Am A Student#把每个单词的第一个字母转化为大写,其余小写