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

    python的数据类型:

    • 字符型
    • 整数
    • 浮点数(float)
    • 布尔型
    • 列表
    • 字典
    • 元组

    字符型

    特性

    • 字符串类型是不可变的
      举例:
      a = 'hello'
      a = 'wolrd'
      虽然a的值变了,但是a = 'wolrd‘相当于在内存又开辟了一块空间,以前的空间并没有被覆盖,而是会被系统自动回收掉。

    用法

    • 全部变大写
      a.swapcase()
    • 第一个字母大写,其他小写
      s.capitalize()
    • 全部变小写
      s.casefold()
    • 以变量值为中心,如果长度不足指定长度,则以变量值为中心两边补充指定字符
    s.center(50,‘*’)
    '*******************hello world********************'
    
    • 统计字母个数
    s.count('o')
    s.count('o',0,5)    #统计从第0个位置到第5个位置中o的个数
    
    • 统计是否以指定字符结尾
      s.endswith('!')
    • 扩展tab键的长度
      s.expandtabs()
    • 查找一个值并返回索引,如果找不到该值则返回负数
    s.find('o')
    -1
    
    • 字符串格式化输出,把指定值赋值到指定的位置
    s3 = 'my name is {0},i am {1} years old'
    s3.format('Alex',22)
    'my name is Alex,i am 22 years old'
    s4 = 'my name is {name},i am {age} years old'
    s4.format(name='alex',age=22)
    'my name is Alex,i am 22 years old'
    
    • 检测是否为小写,返回布尔型结果
      s.islower()
    • 全部转换为小写
      s.lower()
    • 全部转换为大写
      s.upper()
    • 字符替换
    s = 'hello world'
    s.replace('o','-')
    '
     hell- w-rld '
    s.replace('o','-',1)    #只替换第一个
    '
     hell- world '
    
    • 从右边开始寻找某字符串,打印出其位置
    s = 'hello world'
    s.rfind('o')    #find表示从左边开始寻找
    7
    
    • 分割字符为列表
    s = 'hello world'    #默认是以空格分割
    s.split()
    ['hello', 'world']
    s.split('o')    #表示以o为分隔符分割
    ['hell', ' w', 'rld']
    s.rsplit('o')    #从右边开始分割
    ['hell', ' w', 'rld']
    s.rsplit('o',1)    #从右边开始分割,只分割1次
    ['hello w', 'rld']
    s = 'a
    b
    alex
    c'
    s.splitlines()    #表示以换行符分割,
    为换行符
    ['a', 'b', 'alex', 'c']
    
    • 判断是否以指定字符开始
    s = 'hello world'
    s.startswith('he')
    True
    
    • 判断是否以指定字符结束
    s = 'hello world'
    s.endswith('lo')
    False
    
    • 以指定字符连接指定变量元素
    str = '*'
    seq = 'hello'
    str.join(seq)
    'h*e*l*l*o'
    
    • 移除变量首尾指定字符
    s = '000hello wolrd000'
    s.strip('0')
    'hello world'
    
    • 把字符串变成指定长度,不足用0补齐
    s.zfill(30)
    '0000000000000000000hello world'
    

    列表

    用法

    • 定义列表
    names = ['kobe','jordan','paul']
    #定义空列表方法:
    a = list()
    a = []
    
    • 显示列表
    print(names)
    print(names[0]
    
    • 显示最后一位
    print(names[-1])
    
    • 根据值查找索引位置
    names.index('jordan')
    1
    
    • 统计列表中某值的个数
    n1 = [1,1,2,3,2,5,6,6,7,9,6,5]
    n1.count(6)
    3
    
    • 列表切片,注意:切片原则为顾头不顾尾,而且切片只能从左往右进行
    n1[0:3]    #取从0到2的值
    n1[2::5]    #取从2到4的值
    n1[-5:-1]    #取从-5到-1的值
    n1[-5:]    #取从-5到开头的值
    n1[:]    #列出所有元素
    n1[:7:2]    #从开头取到7,2表示步进长度,每隔2位去一个值
    
    • 追加
      names.append('iversion')
    • 指定位置插入
      names,insert(0,'pippen')
    • 修改指定索引位置的值
      names[2] = 'james'
    • 连续修改
    n1 = [1,1,1,1,1,1]
    n1[1:3] = 'jack'
    print(n1)
    [1, 'j', 'a', 'c', 'k', 1, 1, 1]
    
    • 删除
      names.pop() #删除最后一个
    • 删除指定元素
      names.remove('jordan') #如果有多个此元素,则只删除第一个
    • 删除指定位置的元素,del为全局性删除
      del names[2]
    • 列表循环排序
    for i in names:
        print(i)
    ------------------------------------
    for i in range(10)    #range(10)表示生成从0到10的列表
        print(i)
    
    • 列表元素的排序
    n1.sort()    #升序排序
    n1.reverse()    #翻转排序
    
    • 把一个列表的值扩展到另一个列表
      n1.extend(names) #把names扩展到n1列表中
    • 清空列表
      n1.clear()
    • 拷贝列表
      n1 = names.copy() #拷贝names列表内容到n1

    注意:
    对一个变量赋值为列表值的时候,变量指向的不是列表的值,而是列表本身; 列表修改之后,变量值也会修改;如果希望变量值不被影响,需要使用copy函数;

    元组

    元组和列表的区别

    • 元组有序不可变
    • 列表有序可变
    • 元组内的值以小括号包含
    • 元组也可以切片
    • 元组内的列表可以修改

    元组的用途

    • 显式告诉别人此值不可修改
    • 配置信息的编写

    用法

    • 定义元组
      names = ('alex','jack')
    • 获取元组的值
      names[0]
    • 元组切片和列表一样
      names[2:5]

    字典

    字典特性

    • 字典是key/value数据类型
    • 字典是以hash值存放的,方便快速查找

    注意事项

    • 键必须是唯一的并且必须可hash
    • 键不能为可变数据类型

    用法

    • 定义字典
      a={'龙婷':[24,'设计部','UI',23333],'shanshan' : [25,'PR','wild modle,134141241']}
    • 通过key获取内容
      a['龙婷']
    • 添加内容
      a['stu1104'] = 'jordan' #key值可以自定义,但不能重复
    • 判断一个key是否在字典中
      'shanshan' in a #获取到一个布尔型值
    • 获取字典中指定key的value
      a.get('shanshan')
    • 删除指定key
      a.pop('shanshan')
    • 随机删除
      a.popitem()
    • 通过del方法删除
      del a['shanshan']
    • 只打印key的值
      names.key()
    • 只打印value的值
      names.values()
    • 把key和value转换成一个个小的元组
      names.items()
    • 两个字典合并为一个
    info = {'alex' : [24,'IT'],'Jack Ma' : ['Alibaba CEO']}
    names.update(info)     #列表中有对应值覆盖,没有对应值创建
    names
    {'Jack Ma': ['Alibaba CEO'],
     'alex': [24, 'IT'],
     'jordan': [35, 'basketball'],
     'kobe': [23, 'basketball']}
    
    • 字典中有某值,则取出,没有则创建
      names.setdefault(2,'new 2') #第一个为key,第二个为value
    • 定义多个key,然后统一赋值
    info.fromkeys(['a','b','c'])
    {'a': None, 'b': None, 'c': None}
    info.fromkeys(['a','b','c'],'alex')
    {'a': 'alex', 'b': 'alex', 'c': 'alex'}
    

    字典的循环

    • 方法1
    for k in info:       #第一种循环
        print(k,info[k])     #如果只是print(k),则只打印key的值
    
    • 方法2
    for k,v in info.items():     #第二种循环,低效,需要先把循环转化为列表;
        print(k,v)
    
  • 相关阅读:
    Random 种子问题
    Matrix issue
    Two sum.
    Best Time to Buy and Sell Stock
    Maximum difference between two elements
    二分查找法的实现和应用汇总
    Why you want to be restrictive with shrink of database files [From karaszi]
    Palindrome
    NetBeans vs Eclipse 之性能参数对比 [java060515]
    国内各大互联网公司相关技术站点不完全收录[转]
  • 原文地址:https://www.cnblogs.com/stacks/p/7783439.html
Copyright © 2011-2022 走看看