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','-')
'\n hell- w-rld '
s.replace('o','-',1)    #只替换第一个
'\n 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\nb\nalex\nc'
s.splitlines()    #表示以换行符分割,\n为换行符
['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)

posted on 2017-11-04 15:14  生活不如诗  阅读(169)  评论(0编辑  收藏  举报

导航