python数据类型总结

主要是快期末考试了,这方面总结一下。

python的数据类型有字符串,列表,元组,集合,字典,数字。主要列举一下自己遗漏的地方,大概也是用的比较广泛的。

 

一.字符串

在字符串这一块我不太会用的便是函数strip,寻找函数find,indx,大小写转换函数upper,lower,title.

转为列表的split函数以及join函数

1.strip是在爬虫里面遇到的,用于去除字符串两端的指定的东西(默认是删除空格)。

往往爬虫会爬下来的东西会有一些我们想要的和不想要的东西比如

我们往往会很难避免爬下来一些html中的换行符\n,这时候我们需要用到strip函数

a.strip()
a.strip(' \n')

直接用a.strip(),这个表示出除去字符串两边全部空格(如果空格的外面任有字符,这个也会被去除的),在括号内加入一些东西是指定去除哪些字符。

2.find与index 这个就直接用是了。

a='123478'
b=a.index('7')
c=a.find('7') #4

利用这个函数可以返回一段较长字符串里面我们想找字符串的位置,但是find与index有些许不同。

这个不同在于如果在这个字符串中没有我们想找的字符,find会默认返回-1,而index只会报错。

3.uppper lower title 

upper是指把字符全部转换为大写,lower则相应改成小写,title则是将字符串中每个单词的首字母变为大写

4.spilt

其实这个函数讲了列表后再讲是比较好的,这是因为spilt的返回值是一个列表.

A='a b c d'
B=A.split() #split的默认值是按空格切开
print(B) #B为['1','2','3','4']

A='a,b,c,d'
B=A.split(',')
print(B) #B为['a','b','c','d']

使用方法是a.split(sep), 其中a是我们要处理的字符串,sep是我们按什么来分开,比如上述代码段的第二个我们按照‘,'来切割,即遇到一个','就切开放进一个列表中。

5.join

顾名思义就是向字符串中加入一些东西,但是使用方法与上述几点不太一样。上述几种方法是把待处理的字符串放在函数名的前面

item.join(a) item是要加入的东西,a是要处理的对象。

要把加入的东西放在join的前面,其实英语方面来说的话就是把item加入a中。这进一步体现了python语言的简洁性。

A='abcd'
B=','.join(A)
print(B) #B为’a,b,c,d'

 

二.列表

了解一点列表会知道,列表是可以修改的字符串。我个人最喜欢用列表,append是万能啊!!!不过列表还是有一些细节的事情的,比如删除的三个函数pop,remove,del;插入函数insert;合并列表函数extend。

1.pop,remove,del

a=[1,2,3,4]
a.remove(3) #无返回值

# 进行这个操作后 a=[1,2,4]

b=a.pop(0) # 1 有返回值

#进行这个操作后 a=[2,4] 返回b=1

del a[0] 

#进行这个操作后a=[4]

其实del是一个关键字 想删除哪个直接用del a[i] 删去a中的序列为i的元素

pop 以及 remove 这两个都是函数,其中a.pop[i]的处理对象是一个序列值,比如上述代码段中的是删去a中序列为0的元素,并给我们返回这个元素。如果我们直接使用a.pop(),这个默认是删除最后一个元素并返回最后一个元素(相当于i=-1)。

但是 remove不同 a.remove(i) 的处理对象是想删除的对应的元素,比如上述代码段中是删除a中的元素i,没有返回值。

所以对比一下 在不知道列表中的元素的情况下 pop与del是比较常用的,remove用的比较少。

列表的函数一般是没有返回值的,目前我了解到的只用pop有返回值,这个符合python语言特性,删除序列为i的元素并返回这个元素给我们。

2.extend

这个函数应该还是很好用的,用于合并两个列表

A=[1,2,3]
B=[4,5,6]
A.extend(B)
print(A) #([1,2,3,4,5,6]

直接使用就行了,是没有返回值的,在底层中是直接对A进行接续操作的。

与append不同,append是加入一个一个的加入元素,extend是一次性加入很多元素。

3.insert(i,k)

A=[1,2,3,4,5,6]
A.insert(0,1)
print(A) #[1,1,2,3,4,5,6]

这个函数是在原列表的i的序列处增加元素k,通俗点就是在序列i的前面夹加上元素k

4.sort函数中的匿名函数的使用

用sort的排列纯数字的列表是很简单的,但是我们如果遇到了非纯数字的列表比如

city_rank=[['Beijing',1478.76],['Changsha',782,6],['Shanghai',1300.98],['Guangzhou',927,69]]
city_rank.sort(key = lambda x:x[1])#按每项的序列为1的第二项来排列

这个sort就相当于一个迭代器一样,每次都把我们要迭代的对象放进去进行比较,因此可以加入匿名函数lambda对迭代进来的元素进行处理,返回要比较什么。注意sort函数中比较的关键字是key


 

三.元组

元组跟字符串一样,都是不能被改变的数据类型,增、删、改都不行

元组的用法一般在于存储一个固定的数据组,也可以用于循环遍历。我对元组记忆最深的一点在于它的特殊的赋值方法。

1.元组的创建

元组是tuple,建立一个元组十分简单,直接A=tuple()或者直接像列表那样,用A=()都可以建立一个空元组,元素之间用逗号隔开。

但注意如果元组里面只有一个元素的时候,这时要注意。

如上图,如果直接使用A=(1)来建立一个元组,这个被编译器是不认可的我们可以用type函数来判断一下类型,会发现它是一个整型,并不是元组,所以在我们建立元组尤其是其中只有一个元素的时候,要在这个元素后加上一个逗号表示是元组。

2.特殊的赋值方法

对比一下啊,如果是列表A=[1,2,3],B=[4,5,6]如果我们要获取A中的元素和B中的元素进行欧式距离的运算,我们要用很复杂的方法才能将将他们全部取出来,并进行欧氏距离的运算。

A=[1,2,3]
B=[4,5,6]
x1,x2,x3=A[0],A[1],A[2]
y1,y2,y3=B[0],B[1],B[2]
d=((x1-y1)**2+(x2-y2)**2+(x3-y3)**2)**(1/2)

这个时候就体现出了元组的优势,如果我们用元组来.

A=(1,2,3)
B=(4,5,6)
x1,x2,x3=A
y1,y2,y3=B

就可以直接对这些变量赋值。

这个特点是元组比较亮眼的,在计算欧氏距离的时候我比较喜欢用


 

四.集合

python里面的集合就是和数学里面的集合一样,符合互异性,无序性,确定性。

一般用于同样数据的消除处理,但是集合没有序列的概念,所以不能切片与检索。

1.集合的建立

集合是使用花括号{}的,我们可以直接用语句来建立。

a={1,'1',(2,3)}

也可以用函数set(x)来建立,但是此时要求x是列表,字符串或者元组。

a=set('abc')
print(a) #a为{'a', 'b', 'c'}

2.集合的运算

python给我们提供了数学上的运算,交集、并集、差集。

A={1,2,3}
B={2,3,4}
C=A-B
D=A&B
E=A|B
print(C) #C为{1} 为属于A不属于B的元素
print(D) #D为{2,3} &为交集
print(E) #E为{1,2,3,4} |为并集

3.集合是可以变化的

A={1,2,3}
A.add(4)
print(A) #A为{1,2,3,4}

4.集合一般用于去重,集合的互异性

比如要求列表A中有多少种元素

A=['a',2,3,2,3,2,'b','a']

B=set(A)

print(len(B)) #为4 B为{2, 3, 'a', 'b'}

 

 


五.字典

表面理解,在字典中的每一个都有一定的信息量。 我们把这个字称为字典的键值(key),信息量称为字典的值(value)。

1.字典的建立

可以直接建立一个空字典

A={}
A=dict()

注意一个空的花括号是一个空字典,而不是一个空集合(可能因为字典比较吊吧)

2.字典的一些常用方法

  • 字典键值的获取
A={'1':'python','2':'C','3':'cpp','4':'java'}

A.values()
# dict_values(['python', 'C', 'cpp', 'java'])
A.keys()
# dict_keys(['1', '2', '3', '4'])
A.items()
# dict_items([('1', 'python'), ('2', 'C'), ('3', 'cpp'), ('4', 'java')])

直接用keys与values等返回即可,但是注意此时返回的类型是字典对应的类型,需要用的话我一般会转为列表

  • 循环遍历

对于前几个数字类型的循环都直接用就好了,但是如果我们真的需要用上字典的一些东西的话,它的值是有键与值区分的,我们到底是要键还是值在循环中都有体现。

A={'1':'python','2':'C','3':'cpp','4':'java'}
for i in A.values():
    print(i,end=' ')
# 值的信息全部返回 python C cpp java 
for i in A.keys():
    print(i,end=' ')
#键的值全部返回 1 2 3 4
for i,j in A.items():
    print(i,j,end=' ')
# 键与值全部返回 1 python 2 C 3 cpp 4 java 

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一袍清酒付825

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值