数据类型及用法

        python的数据类型有字符串(str),字节串(bytes),整型(int),浮点型(float),元组(tuple),列表(list),字典(dict),集合(set)。字节串在进行字符编码时进行介绍。

(一) 字符串

定义:在单引号或者双引号或者三引号内,由一个或多个字符串在一起组成的字符串    name = "alex123456"

作用:姓名,性别,国籍,地址等描述信息;

用法:

1.按索引取值  ”顾头不顾尾“

正向取 :name[3]  ----"x" 

反向取:name[-3]  ----"4"

2.切片    ”顾头不顾尾“    可以有三个参数,起始点,终止点,步长,注意反向步长的作用,可以把字符串倒过来

name[1:4:2] ---"lx"

name = "alex"  name[ : : -1]   ------"xela"

3.长度  len()

len(name)----10

4.分割(split()),以某一字符将字符串分割成一个列表,有2个参数,字符可以是标点符号也可以是字母,另一个参数是从第几个标号符号或字符来分割

(以什么分割,分割后的结果就没有什么)

name = "alex,123456hello"

以逗号分隔: name.split(",")   ------["alex", "123456hello"]

以字母分割: name.split("l")   ------["a", "ex,123456hello"]

以第2个指定字母分割: name.split("l",2)   ------["alex,123456he", "lo"] 

5.去除空白 strip(),去掉字符串开头和结尾的空格和\n。也可以有一个参数,指定去掉开头结尾的这个参数。

去除空白和换行: s= "   你好\n"    s.strip()     ------s="你好"

去除指定字符: s = ***你好***“    s.strip(" * ")  -----s="你好"

这个也成立  name="alex1214"  name.strip("a") -----name="lex1314"

6.拼接  ” “. join()方法,将一个列表拼接成一个字符串,给join()传一个参数时,以此参数来连接列表里的内容

将列表拼接成字符串:” “.join( ["I", "am", "world"] )   ---------"Iamworld"

传递以恶搞参数: ” * "“.join( ["I", "am", "world"] )   ---------"I*am*world"          

 7.find() 方法   从左像右找

s = " hello world "   s.find(" l ")   ------2  从左边起第一个“ l "索引位为2

rfind()  从右边起找

s = " hello world "   s.rfind(" l ")   ------9  从右边起第一个“ l "索引位为2

找不到会返回-1,Index找不到会报错

8.index()方法   可以有2个参数

s.index(" 0 ") -----4

s.index("0",3)   从第三个索引值开始找  ------4

9.replace 替换

”hello world".replace("world", "python")   ------"hello python "

10.format() 字符串格式化

(1)百分号通配符来格式化   %s  表示字符串   %d    整型     %f  浮点型   %4f  保留四位小数

" %s  %d %f " % (a, b, c)

(2) format()

a. 按位来对应:  ” hello {0},his age is {1}".format("alex, 12)

                          hello alex,his age is 12.

b. 按变量来对应:” hello {name},his age is {age}".format(name="alex, age=12)

                          hello alex,his age is 12.

a中("alex, 12)不可换位置,而b中(name="alex, age=12)可以换位置

11.center(),ljust(), rjust()    2个参数,一个是字符宽度,一个是填充的字符

"hello".center(20,“*”)  -----“*******hello********"

"hello".ljust(20,“*”) -----“hello***************"

"hello".rjust(20,“*”) -----“***************hello"

12.判断是否为数字  返回真假

”12“.is decimal()

”12“.isdigital()     十进制数,一般用这个就可以了

"12".isnumeric()     罗马数字  汉子数字用这个

13.isalpha() 判断字符串是否都为字母,必须都是菜返回真

”hello“.isalpha()  ------- True

14.变大写

” hello, world".capitalize()    H变大写

” hello, world".title()    H和W变大写

” hello, world".upper()    整个字符串都变大写

15.变小写

” HELLO WORLD".lower()    都变小写

” HelLO WorLD".swapcase()    大小写互换

” hello, world".casefold()   都变小写,罗马大写也变小写

16.扩展定义tab键

” hello 、\t  world".expandtabs(20)      将\t 4个空格键改为20个空格

--------” hello,                      world“

17.zfill()   以参数补充定义的宽度

” hello, world".zfill(20)

-----“00000000hello, world”

18.startswith()  endswith() 判断是否以给定参数开头\结束,返回真假

True” hello, world".startswith(" h ")     -------True

” hello, world".endswith(" d ")     -------  True

19.translate()   一种映射关系,来编译成对应的字符

a = "abedabc"

IN = " abcde"

OUT = "12345"

trans_table = str.maketrans(IN, OUT)

a.translate(trans_table)  ----------1254123

(二)列表  LIST

list  []   像一个清单

定义:[ ]内可以有任意类型的值,用逗号隔开

作用:多个同一类型的数据的存放,多个同学,多个爱好,多件衣服

1.创建

a.l = [1,2,3]    ----[1,2,3] 中括号中什么都可以放,包括嵌套

b. l = list([1,2,3])   -----[1,2,3]    list后用软括号也可以   l = list((1,2,3))   -----[1,2,3]

2.查找

a. 切片的方法  []  注意反向步长

l = [1,2,3,4,5,6]        l[ : : -1]   --------[6,5,4,3,2,1]

取后2个元素    l[ -2: ]

b. index

3.增加

insert()      2个参数,第几位插入什么元素   l.insert(2,"a")-----[1,2,"a",3,4,5,6]

append()   追加都列表的最后一位  只能添加一个   l.append(7)-------[1,2,3,4,5,6,7]

extned()     扩展列表   可以增加多个元素,多个元素放在一个列表里    l.extend([8,9]) 

      -------[1,2,3,4,5,6,7,8,9]

4.删除

pop()    通过位置删除  

      l.pop()  默认输出最后一个  ------[1,2,3,4,5,6,7,8]

      l.pop(2)  指定删除索引为2的元素  -------[1,2,4,5,6,7,8]

remove()   通过内容删除   给定的参数为内容

      l.remove(8) ------[1,2,3,4,5,6,7]

del     可以删除元素 也可以删除整个列表

      del  l[3]  删除元素3

      del l    删除整个列表

5.改    赋值操作

通过索引重新赋值来改:   l[0] = 9   ------[9,1,2,3,4,5,6,7,8,]

6.clear()   清空列表里面的值

l.clear() -----[]

7.count()    统计某个元素的个数

a = [1,2,3,4,2,3,1,2]        a.count(2)  ------3

8.sort()    从小到大排序  

a = [1,3,5,7,2,9]    a.sort()   ------[1,2,3,5,7,9]

            函数sorted也可以排序   sorted(a) ------[1,2,3,5,7,9]

sort(reverse=True)   从大到小排序

a = [1,3,5,7,2,9]    a.sort(reverse=True)   ------[9,7,5,3,2,1]

9.reverse()   把列表倒过来 不排序 

a = [1,3,5,7,2,9]    a.reverse()   ------[9,2,7,5,3,1]

10.enumarate() 函数    给列表自动加索引

a=[1,2,3,4]

for i in enumarate(a) 

  print(a)      # 会给a前加一个索引

 0  1

1   2

2  3

3  4

(三)字典  dict

    Python中唯一具有映射关系的数据类型,一对一,一对多,字典的查询效率要高于字典,无序

定义:位于{}中的多个键值对,键与值对之间用冒号隔开key-value,注意key必须是不可变类型,value可以是任意类型可以嵌套

作用:用于有映射关系的场景 

1.创建

d = { "name" : ” alex",“age":12}

2.查询

(1)通过键来查   d["name"]  ------"alex"

(2)使用get方法查   d.get("name")  ------"alex"

推荐使用2方法,使用方法一当给出的键找不到时会报错,而方法2不会,会返回None,不报错

(3)用循环遍历  打印出每一对键值对

3.增加:赋值来增

d["age"]=12

4.修改 :通过对键对应的值重新赋值来修改

d["age"]=21

5.删除

pop.(key)   删除所传的key的value

          d = { "name" : ” alex",“age":12}     d.pop("name")  -------print(d)    {“age" : 12}      

         d.pop("name")有返回值   是它对应的value

popitem()     随机删除一个

del    del d.["name"]  删除以"name”为键的键值对

         del d   删除整个字典

6.update() 更新字典     括号内传一个字典,会更新旧的字典,旧字典和括号内传的字典有共同的键时,这个键在新字典中对应的值为括号内传的字典的键的值

                 即所谓的更新覆盖

d2 = {1:"小明“,”name":"egon"}

d.updeate(d2)   ------{"name":"egon","age":12,1:"小明“}

 (四)集合  set

        集合是可变数据类型,但集合内的元素必须是不可变数据类型

定义:位于{}中的多个元素,用逗号隔开,遵循三个原则:集合内每个元素都是不可变数据类型;没有重复的元素。务虚

作用:去重;关系测试

注意:集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

1.创建:

(1)s={1,3,”hello"}

(2)s=set([1,3,”hello"])   ------s={1,3,”hello"}

2.去重:天然去重

l = [1,2,3,2]

print(set(l))  -----{1,2,3}

3.关系测试

s1 = {1,2,"hello"}    s2 = {1,2,("a", "b")}

(1)求交集   Intersection()

s1.intersection(s2)        也可以写成   s1  and  s2

(2)求并集   union()

s1.union(s2 )                 也可以写成   s1  |  s2

(3)求差集   difference   我有的 你没有

s1.difference(s2)        -------  {"hello",3}

s2.difference(s1)        -------  {("a","b")}

(3)求对称差集  symmetric_difference    两者并集中除去共同拥有的

    s1.symmetric_difference(s2)             也可以这样表示   s1  ^  s2

s1与s2互换位置结果一样

(五)元组 tuple 

同列表用法,不能修改

t = (1,2,3)

t.count()

t.index()

posted @ 2017-09-23 14:21  生如夏花和秋叶  阅读(254)  评论(0编辑  收藏  举报