zoukankan      html  css  js  c++  java
  • python之数据类型

    一、数据类型是什么?

      计算机可以处理多种类型的数据,如数字,字符串,文件,音频等。数据类型就是值的集合。

      变量可以存储数据,有变量名和数据类型,声明变量时要说明数据类型,以决定如何将代表这些值的位存储到计算机内存中。

    二、列表及列表操作

      列表(也叫数组)是最常见的数据类型之一,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

      一个list里嵌套一个list 如[1,2,3,['abc',23]],称为二维数组,一个list里嵌套一个list,最里面的list再套一个list,如[1,2,3,4['Lyh',12,['sdf',22]]],称为三维数组,即此类推。

      通过下标访问列表中的元素,即索引,从0开始计算,第一个元素的索引是0,第二个为1,以此类推。

    2.1 访问列表中的元素

      除了索引访问,也可以使用方括号的形式截取字符。如下所示:

    stu_name=['杨帆','唐小军','周杜娟','暖暖',1,1.5,'hello']
    print(stu_name[2])#打印出列表中索引为2的元素。
    print(stu_name[0:5])#顾头不顾尾,截取打印索引为0,1,2,3,4的元素
    print(stu_name[1:4])#截取打印索引为1,2,3的元素
    print(stu_name[:5])#默认索引从0开始,0可以省略
    print(stu_name[2:])#冒号:后面值没写,默认从索引2代表的元素开始,取到最后一个数据
    print(stu_name[::])#冒号前后都不写,代表取所有值
    print(stu_name[::2]#取所有元素,每隔2个元素取一次
    nums=['a','b',3,5,6,78,23,45,56,12]
    print(nums[1:8:3])#取索引1到索引8,但不包括索引8的值,每隔3个元素取一次。

    2.2 增删改查

      修改更新列表元素:

    stu_name=['杨帆','唐小军','周杜娟','暖暖',1,1.5,'hello']
    stu_name.append('温馨宇')#默认从末尾添加一个元素
    stu_name.insert(2,'abc')#从指定位置插入元素,这里指定从索引2的位置
    print(stu_name)

      删除列表元素:

    stu_name.pop()#默认删除末尾的元素
    stu_name.pop(4)#删除指定位置的元素
    stu_name.remove('hello')#删除指定元素,若存在相同元素,默认删除第一个
    del stu_name[2]#删除指定位置的元素
    del stu_name[-1]#-1代表最后一个元素,从后向前数
    stu_name.clear()#清空整个列表

      修改列表元素: 

    stu_name=['杨帆','唐小军','周杜娟','暖暖',1,1.5,'hello']
    stu_name[2]='fish'#修改列表中索引为2的元素
    #列表中索引为2的元素为‘唐小军',修改后显示'fish'

    2.3 列表内置方法

    stu_name=['杨帆','唐小军','周杜娟','暖暖',1,1.5,'hello']
    stu_name.count('杨月')#统计某个元素在列表中的次数
    stu_name.index(1.5)#查询某个元素在list中的下标
    stu_name.reverse()#reverse是反转list
    print(stu_name)#打印出反转后的list
    stu_name.clear()#清空list内容
    nums=[1,3.5,6.5,11,23,7,8]
    nums.sort()#默认按升序排
    nums.sort(reverse=True)#若果指定reverse=True就按降序排列
    nums.extend(stu_name)#将一个列表中的元素加到另一个列表中,即合并两个元素

    注意:List1.extend(List2)是将List2中的元素加到list1中,打印List1可以看到合并后的值。区别于List3=List1+List2,"+"连接合并两个列表后,产生一个新列表。

    2.4 循环遍历List

    #方法1
    passwords=['12345','123456','123456YHcg']
    index=0
    for p in passwords:
        print("每次循环:",passwords.index(p),p)
    
    #方法2
    passwords=['12345','123456','123456YHcg']
    for i in range(len(passwords)):
        print("索引:%s,值:%s"%(i,passwords[i]))
    
    #方法3
    passwords=['12345','123456','123456YHcg']
    for index,p in enumerate(passwords):
        print("索引:%s,值:%s"%(index,p))#使用枚举函数,会帮你计算下标和元素

    三、元组及元组操作

      元组与列表相似,不同之处在于:元组中的元素不能改变。元组用()定义,且要用逗号隔开。只有一个元素时,切记其后要跟逗号。

    tup1=('杨月','暖暖','Balllyh',12,5.6,21)#定义一个元组
    tup2=()#定义一个空元组
    tup3=(25)
    print(type(tup3))#元组中只有一个元素时,如果不加逗号,括号被当作运算符。这里打印是int类型
    #打印结果:<class 'int'>
    tup4=(25,)
    print(type(tup4))#元组中只有一个元素时,其后加逗号,才是元组类型
    #打印结果:<class 'tuple'>

      元组与字符串一样,下标也是从0开始,通过下标访问元组中的元素,或者截取。

    3.1 访问元组

    print(tup1[3])#打印元组中索引为3的值
    print(tup1[:4])#与列表一样,顾头不顾尾,取索引0-3的元素,不包括索引4的元素。
    print(tup1[1:5:2])#取索引1到4的元素,每隔2个取一次
    print(tup1[2:])#从第三个元素取到最后一个。冒号后不显示,默认取到最后一个元素

    3.2 元组内置方法 

    tup1=('杨月','暖暖','Balllyh',12,5.6,21,'暖暖')#定义一个元组
    del tup1#元组中元素不能删除,可以删除整个元组
    print(tup1)
    print(tup1.index('暖暖'))#查询指定元素的下标
    print(tup1.count('暖暖'))#统计指定元素在元组中出现的次数
    tuple(list)#将列表直接转换成元组

    四、字典及字典操作

      字典也是一种key-value的数据类型,创建字典时,用大括号{},每个key-value键值对用逗号,隔开,key与value之间用冒号:隔开。

      格式为:{key1:value1,key2:value2}

      字典的特点:

    • 字典是key做索引,通过key遍历和访问字典中的元素,其查询速度快;
    • 字典的key是唯一的,不能重复,value不要求;
    • 字典是无序的

    4.1 访问字典中的元素

    dict={'name':'Liuyihan','sex':'','addr':'深圳','age':18,'email':'123@qq.com','id':1}
    print(dict['name'])#获取'name'这个key的信息,若key不存在,则报错
    print(dict.get('name'))#获取'name‘这个key的信息,若key不存在,则返回None
    print(dict.get('shenggao',165))#get获取信息时,若key不存在,可指定默认值。这里shenggao不存在时,默认取165

    4.2 增删改查

      在字典中增加元素

    dict={'name':'Liuyihan','sex':'','addr':'深圳','age':18,'email':'123@qq.com','id':1}
    dict['heavy']=115#增加一个元素heavy
    dict['name']='麻花'#若dict里无这个值,直接更新修改name的值,若已存在这个值,就不更新。
    print(dict)

      删除字典中的元素

    dict={'name':'Liuyihan','sex':'','addr':'深圳','age':18,'email':'123@qq.com','id':1}
    dict.pop('age')#删除指定位置的key和value。因为字典由key定位元素位置
    dict.clear()#清空字典
    del dict['id']#删除指定位置的key和value。
    dict.popitem()#随机删除某个元素

    4.3 字典内置方法

    print(dict.len())#统计字典长度,即字典中元素个数
    print
    (dict.values())#打印出所有的value print(dict.keys())#打印出所有的key print(dict.setdefault('heavy',112))#若key不存在,则按设置的值添加,若key存在,就不添加。 dict2={'school':'重庆邮电大学','job':'softtest'} print(dict.update(dict2))#将一个字典中的值更新到另一个字典中,若已存在,就不更新 print(dict) print(dict.items())#将字典转换成list

    4.4 字典的循环遍历

      第一种方法:只对key的遍历,推荐使用这种方式,速度快

    dict={'name':'Liuyihan','sex':'','addr':'深圳','age':18,'email':'123@qq.com','id':1}
    for k in dict:
        print(k,dict[k])#打印出key和value

      第二种方式:对key和value都遍历

      如果想获取键和值d.items方法会将键-值对作为元组返回,for循环的一大好处就是可以循环中使用序列解包 

    dict={'name':'Liuyihan','sex':'','addr':'深圳','age':18,'email':'123@qq.com','id':1}
    for k,v in dict.items():
        print(k,v)

    五、字符串及字符串操作

       创建字符串用引号'',只要给变量分配一个值即可  

    password='Welcome to my blogs!'
    nums='123yh'

      字符串常用的内置方法:

    print(password.endswith('!'))#判断是否以X结尾
    print(password.capitalize())#将字符串的首字符大写
    print(password.upper())#将字符串转换成大写
    print(password.lower())#将字符串转换成小写
    print(password.isdigit())#判断是否是数字
    print(password.isalpha())#判断是否是字母
    print(password.isalnum())#判断是否包含数字和字母
    print(' mysql
    '.strip())#默认去掉左右两边的空格和换行符
    print(' myslq
    '.lstrip())#默认去掉左边的空格和换行符
    print(' mysql
    '.rstrip())#默认去掉右边的空格和换行符
    print(password.find('y'))#查找指定字符在字符串中的索引/下标
    print(password.conut('o'))#统计一个字符在字符串中出现的次数
    print(password.replace('blogs','BBS'))#替换字符
    print(password.split(','))#把字符串变换成list,指定分隔符,分割之后是list里的每一个元素
    print(password.strip('.jpg'))#默认去掉字符串前后两边的空格和换行符,也可以指定字符如.jpg
    print('123
     1+2+3+4'.splitlines())#按照换行符分割
    users = ['username','user2','user3']
    user2='hello world'
    user3={'liuyihan':'123456','City':'shenzhen'}
    t='*'.join(user2)#join将可循环对象转换成字符串,指定连接符,将可循环对象里的每个元素连接起来,
    b='-'.join(users)
    c='#'.join(user3.items())
    print(t)
    print(type(b))
    print(c)
    print(user2.find('a'))#若元素不存在时,返回-1
    print(user2.index('a'))#查找某元素的下标即索引。若元素不存在时,报错
    print('0.9'.isdigit())#判断是否是正整数
    print('122  2'.isspace())#判断是否是空格,是返回TRUE,否返回False
    print(user2.zfill(width))#返回长度为width的字符串,原字符串右对齐,前面补0
    
    import string
    print(string.ascii_lowercase)#小写字母a-z
    print(string.ascii_uppercase)#大写字母A-Z
    print(string.digits)#0-9数字
    print(string.punctuation)#特殊字符#¥%&8等
    print(string.ascii_letters)#小写大写字母
  • 相关阅读:
    安装Windows 和 Linux双系统(vmware) Centos7
    Nginx
    rsync详细配置
    19、Squid代理服务器
    5、SAMBA服务二:配置实例
    5、SAMBA服务一:参数详解
    4、NFS
    1、网络基本配置
    Spring data mongodb使用
    win下MongoDB使用
  • 原文地址:https://www.cnblogs.com/balllyh/p/9539325.html
Copyright © 2011-2022 走看看