美文网首页
python中的主要数据类型及相关操作

python中的主要数据类型及相关操作

作者: 123678 | 来源:发表于2020-03-17 21:56 被阅读0次

    黑马python学习记录
    b站麦叔编程学习记录


    菜鸟一枚,不喜勿喷

    python中主要数据类型

    python中的主要数据类型包括了:

    (1) 数值型(int/float)
    (2) 布尔型(True/False)
    (3) 字符型(str)
    (4) 列表(list)
    (5) 元组(tuple)
    (6) 集合(set)
    (7) 字典(dict)

    # 整数 --int
    num1 = 10
    print(num1)
    # 浮点数 --float
    num2 = 10.03
    print(num2)
    # 布尔型 --bool
    num3 = True
    print(num3)
    # 字符型 --str
    s1 = 'hello world'
    print(s1)
    # 列表 --list 
    lst = [1,2,'W',1,1.23,[1,2,3]]
    print(lst)
    # 元组 --tuple
    tup = (1,)
    print(tup)
    # 集合 --set
    set1 = {1,1,2,3,4}
    print(set1)  #集合的输出去重复
    # 字典 --dict
    dict1 = {'A':1,'B':2,'C':3}
    print(dict1)
    

    字符型(str)
    # 字符串是Python中常用的数据类型,一般用单引号、双引号、三引号包括的数据
    # 举个小例子
    a = "hello,I'm Tom "
    b = 'hello,I\'m tom'
    print(a,'\n',b) # a 和 b打印的结果相同,hello,I'm Tom
    
    # 数据在程序运行时存储在内存当中,这些数据会分配一个编号,使用索引可以方便吃查找,索引从默认从0开始。str2 = 'HELLO WORLD'
    print(str2[0])
    print(str2[-1])
    print(str2[:: -1])
    print(str2[0:10:2]) # 0到10,步长2
    >>> H
    >>> D
    >>> DLROW OLLEH
    >>> HLOWR
    
    # str中的常用操作方法:(1)查找 (2)修改 (3)判断
    # (1)查找
    # find() 查找子串在字符串中的位置或者出现的次数
    # 语法:字符串.find(字串,开始位置下标,结束位置下标),省略开始和结束下标,表示在这个序列中查找
    mystr = 'if you saturate your mind with positive thoughts'
    print(mystr.find('you'))
    >>> 3 # 如果有多个符合条件的子串,返回第一个子串的索引
    
    # rfind() 从字符串的右侧查找
    print(mystr.rfind('you'))
    >>> 16 # 右侧第一个符合条件的子串
    
    # index()
    print(mystr.index('you'))
    >>> 3 # 返回第一个符合条件的子串的index
    # rindex() 从右侧查找第一个符合条件的index,用法和index()相同
    
    # (2)修改
    # replace()
    # 用法 :字符串序列.replace(旧子串,新子串,替换次数)
    mystr2 = mystr.replace('you','we',2)
    print(mystr2)
    print(mystr)
    >>> if we saturate wer mind with positive thoughts # you替代成了we
    >>>if  you saturate your mind with positive thoughts #原字符串没有修改,说明字符串是不可改变的数据类型
    
    # split() 分隔字符串序列,返回一个列表
    lst = mystr.split() #默认的是\t或者空格
    >>> ['if', 'you', 'saturate', 'your', 'mind', 'with', 'positive', 'thoughts']
    lst1 = mystr.split('you') # 以you作为分隔符
    >>>  ['if ', ' saturate ', 'r mind with positive thoughts'] # 注意字符串序列中的your的分隔情况
    
    #  join() 合并列表里的字符串数据为一个大的字符串
    # 用法:''.join(list)
    new_mystr = '---'.join(lst1)
    print(new_mystr)
    >>> if --- saturate ---r mind with positive thoughts # 以‘---’作为连接符
    
    # (1) capitalize()  字符串序列的首字母大写
    # (2) title()       每个单词的首字母大写
    # (3) lower()       字符串序列中的大写字母变成小写
    # (4) upper()       字符串序列中的小写变成大写
    # (5) strip()       删除字符串序列中两侧的空白字符
    # (6) lstrip()      删除左侧的空白
    # (7) rstrip()      删除右侧空白
    str1 = '  hello WorlD  '
    print(str1.capitalize())
    print(str1.title())
    print(str1.lower())
    print(str1.upper())
    print(str1.lower())
    print(str1.strip())
    print(str1.lstrip())
    print(str1.rstrip())
    # 输出结果
    >>>   hello world #开头是空格
    >>>   Hello World
    >>>   hello world  
    >>>   HELLO WORLD
    >>>   hello world
    >>> hello WorlD
    >>> hello WorlD
    >>>   hello WorlD
    
    # (8) rjust()     返回的字符串右对齐
    # (9) ljust()     返回的字符串左对齐
    # (10) center()   返回的字符串中间对齐
    str2 = 'hello'
    print(str2.rjust(10,'.')) #不满10个字符的话用 '.' 填充,不写的话默认为空格
    print(str2.ljust(10,'.'))
    print(str2.center(10,'.'))
    # 输出结果
    >>> .....hello
    >>> hello.....
    >>> ..hello...
    
    # 判断
    # (1) startwith() 检查字符串是否以指定的字符串开头,是则返回True,否则为False,如果设置开始和结束位置,则在指定的范围里查找
    # (2) endwith() 检查字符串是否以指定的字符串结尾
    str3 = 'hello world and litcast and itheima and python'
    print(str3.startwith('hello'))
    print(str3.endwith('python'))
     # 返回结果
    >>> True
    >>> True
    

    列表(list)
    # 列表用来一次性存储多个数据 [数据1,数据2,数据3,数据4.....] 数据可以是不同类型,列表中的数据可以重复
    # 常用的列表操作:增、删、改、查
    # (1) 查找
    # list.index(数据,开始下标,结束下标)
    # list.count(数据)
    # in/not in  判断数据是否在列表中,返回True或者False
    name_list = ['Tom','Jack','Rose','Mark','Lili','Tom']
    print(name_list[0])
    print(name_list[0:4:2]) 
    print(name_list[::-1]) #倒置列表
    print(name_list.index('Tom'))
    print(name_list.count('Tom'))
    print('Tom' in name_list)
    # 返回结果
    >>> Tom
    >>> ['Tom', 'Rose']
    >>> ['Tom', 'Lili', 'Mark', 'Rose', 'Jack', 'Tom']
    >>> 0
    >>> 2
    >>> True
    
    # (2) 增
    # list.append('数据') 在列表的末尾增加数据
    # list.extend('数据') 在列表的结尾添加数据,数据是一个序列,则将这个序列数据逐一添加到列表
    # list.insert(下标,数据)
    name_list.append('xiaoming')
    print(name_list)
    >>> ['Tom', 'Jack', 'Rose', 'Mark', 'Lili', 'Tom', 'xiaoming'] # 列表可以修改
    
    name_list.extend(['Huahua,'Weiwei'])
    print(name_list)
    >>> ['Tom', 'Jack', 'Rose', 'Mark', 'Lili', 'Tom', 'xiaoming', 'Huahua', 'Weiwei']
    
    name_list.insert(0,'Deng') # 在第一个位置添加Deng
    print(name_list) 
    >>> ['Deng', 'Tom', 'Jack', 'Rose', 'Mark', 'Lili', 'Tom', 'xiaoming', 'Huahua', 'Weiwei']
    
    # (3) 删
    # del()
    # remove()
    # clear()
    # list.pop() 删除指定下标的数据,如果没有指定的下标,就默认会删除最后一个数据,pop函数都会返回被删除的数据
    
    name_list = ['Tom','Jack','Rose','Mark','Lili','Tom']
    del (name_list[0])
    print(name_list)
    >>> ['Jack', 'Rose', 'Mark', 'Lili', 'Tom']
    
    name_list.remove('Jack')
    print(name_list)
    >>> ['Rose', 'Mark', 'Lili', 'Tom']
    
    name_list.pop()
    print(name_list)
    >>> ['Rose', 'Mark', 'Lili']
    name_list.clear()
    print(name_list)
    >>> []
    
    # (4) 修
    # reverse()
    # sort()
    # copy()
    # 根据指定的下标修改数据
    name_list = ['Tom','Jack','Rose','Mark','Lili','Tom']
    name_list[0] = 'Kangkang'
    print(name_list)
    >>> ['Kangkang', 'Jack', 'Rose', 'Mark', 'Lili', 'Tom']
    
    # 逆序排序
    name_list.reverse()
    print(name_list)
    >>> ['Tom', 'Lili', 'Mark', 'Rose', 'Jack', 'Tom']
    
    # sort()升序和降序
    name_list.sort()
    print(name_list)
    >>> ['Jack', 'Lili', 'Mark', 'Rose', 'Tom', 'Tom']
    
    name_list.sort(reverse=True)
    print(name_list)
    >>> ['Tom', 'Tom', 'Rose', 'Mark', 'Lili', 'Jack']
    
    # 复制
    name_list1 = name_list.copy()
    print(name_list1)
    >>> ['Tom', 'Tom', 'Rose', 'Mark', 'Lili', 'Jack']
    
    # 列表嵌套
    name_list2 = [[1,2],[2,3,4],[5,6,7],[8,9,10]]
    print(name_list2[1][2])
    >>> 4
    # 列表中的数据可以嵌套
    for i in name_list:
         print(i)
    

    元组(tuple)
    # 列表的用途
    # 如果想存储多个数据,数据不可以修改,并且存储的数据不可以修改,元组中的数据可以是不同的类型。
    t1 = (1,) # 如果元组只有一个元素,在元素的末尾添加',' 不然默认为元素的类型
    t2 = (1,'2','3',[1,2,3])
    
    ''' 元组中的常见操作:    (1) 按照下标查找数据
                           (2) index() 查找数据
                           (3) count() 统计某个数据在元组中出现的次数
                           (4) len()   统计元组中元素的个数
    '''
    print(t2[0])
    print(t2.index('2'))
    print(len(t2))
    print(t2.count('2'))
    # 返回结果
    >>> 1
    >>> 1
    >>> 4
    >>> 1
    
    ## 注意:元组不可以修改,但是列表中存在可以修改的元素,如列表,则可以修改列表中的元素
    t2[3][0] = 2
    print(t2)
    >>> (1, '2', '3', [2, 2, 3])
    
    ### 元组中的元素也是可以迭代的,可以通过循环遍历
    

    字典(dict)
    字典中的数据以键值对的形式存储数据,字典中的数据顺序没有关系,即字典不支持下标
    ### 字典的特点
    (1) 符号为大括号
    (2) 数据以键值对的形式出现
    (3) 字典为可变数据类型
    (4) 字典中的 key 为不可变数据类型
    (5) 如果字典中相同的key,具有不同的value值的话,取靠后的key-value值
    dict1 = {'A':1,'B':2,'C':3,'D':4}
    dict2 = {} # 空字典
    ###  字典常见的操作:增、删、改、查
    # (1) 增
    dict1 ['小明'] = '5'
    print(dict1)
    >>> {'A': 1, 'B': 2, 'C': 3, 'D': 4, '小明': '5'}
    
    # (2) 删
    del() : 删除字典或者指定键值对
    del(dict1['A']) # 删除字典中的指定键值对
    print(dict1)
    del(dict1) # 删除整个字典
    print(dict1)
    dict1.clear() # 清空字典,与删除整个字典有区别
    print(dict1)
    # 返回结果
    >>> {'B': 2, 'C': 3, 'D': 4, '小明': '5'}
    >>> NameError: name 'dict1' is not defined
    >>>{} #  返回空字典
    
    # (3) 查
    (1) 按照key值进行查找
    (2) dict.get(key,默认值) 如果查找的key不存在返回默认值,不设置默认值的话,返回none,否则返回相对的value值
    (3) dict.keys()     返回字典的key值
    (4) dict.values()   返回字典的value值
    (5) dict.items()   返回字典的单个键值对,元组类型显示
    
    dict1 = {'A':1,'B':2,'C':3,'D':4}
    print(dict1['B']) # 按键值对查找
    print(dict1.get('tine=a'))
    print(dict1.keys())
    print(dict1.value())
    print(dict1.items())
    # 返回结果
    
    >>> 2
    >>> none
    >>> dict_keys(['A', 'B', 'C', 'D'])
    >>> dict_values([1, 2, 3, 4])
    >>> dict_items([('A', 1), ('B', 2), ('C', 3), ('D', 4)]) #返回的键值对用元组存储
    
    #### 可以用循环遍历字典中的元素
    
    In [72]: dict1_keys = []
    
    In [73]: for i in dict1.keys():
        ...:     dict1_keys.append(i)
        ...: print(dict1_keys)
    
    集合(set)
    ### 创建集合用set()或者{},注意:如果创建空集合的话不能用{},用set()。{}用来创建空字典。
    ### 集合的特点:(1) 集合中不存在重复的数据
    #              (2) 集合中的数据没有顺序
    set1 = set()
    set2 = set('1,1,2,3,4,4,5,6')
    set3 = set([1,2,3,4,2,3])
    set4 = set('1,2,3,4,5')
    set5 = set('abcdefg')
    print(set1)
    print(set2)
    print(set3)
    print(set4)
    print(set5)
    # 返回的结果
    >>> set()
    >>> {',', '5', '6', '4', '1', '2', '3'}
    >>> {1, 2, 3, 4}
    >>> {',', '5', '4', '1', '2', '3'}
    >>> {'g', 'b', 'e', 'c', 'f', 'd', 'a'}
    
    # 集合中的操作方法
    
    # (1) 增加数据
    # add()    用来增加单一数据
    # update() 用来增加一个数据序列
    s1 = {10,20,'30','40'}
    s1.add(100)
    print(s1)
    s1.update([50,60,70])
    print(s1)
    
    # 返回的结果
    >>> {'40', 100, 10, '30', 20}
    >>> {'40', 100, 70, 10, '30', 50, 20, 60} # 从结果可以看出,集合没有顺序
    
    # (2) 删除数据
    # remove() 数据不存在的话,报错
    # discard() 数据不存在的话,不报错
    # pop() 随机删除某个数据,并返回 ,###列表中默认删除最后一个数据### 
    
    s2 = {10,20,30,40}
    s2.remove(20)
    print(s2)
    >>> {40, 10, 30}
    
    s2.discard(10)
    print(s2)
    >>> {40, 30}
    
    print(s2.pop())
    >>> 40
    
    # (3) 判断数据是否存在 ----in/not in
    s3 = {1,2,3,5,6}
    print(1 in s3)
    print(4 in s3)
    #返回结果
    >>> True
    >>> False
    
    #####因为集合中的数据没有顺序性,所以无法使用索引
    # s3[1]
    # TypeError: 'set' object does not support indexing
    

    ------------------------------the end ----------------------------------------

    相关文章

      网友评论

          本文标题:python中的主要数据类型及相关操作

          本文链接:https://www.haomeiwen.com/subject/ranxyhtx.html