Python 基本数据类型--常用方法总结

# 一、数字
# int(..)
# 二、字符串
  1、replace('旧内容','新内容')用新的字符替换字符串中的旧字符
    str1='my name is tony,my age is 18!'
    str1=str1.replace('my','MY',1)可以指定修改的个数
    'MY name is tony,my sge is 18'
  2、find
  3、join从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接结果为字符串
    >>>'*'.join('hello)
      'h*e*l*l*o'
    >>>'*'.join(['tony','18','read'])
      'tony*18*read'
  4、strip('*')移除左右两边指定字符
  5、lstrip('*')只移除左边的指定字符
  6、rstrip('*')只移除右边的指定字符
  7、startswith判断字符串是否以括号内指定的字符开头,结果为布尔值True或False
  8、endswith判断字符串是否以括号内指定的字符结尾,结果为布尔值True或False
  9、split会按照从左到右的顺序对字符进行切分,可以指定切割次数
  10、rsplit刚好与split相反,从右往左切割,可以指定切割次数
  11、upper将英文字符串全都变大写
  12、lower将英文字符串全都变小写
  13、format类似于%s的用法,传入的值会按照位置{}一一对应
  14、isdigit判断字符串是否是纯数字组成,返回结果为True或False
# tempalte = "i am {name}, age : {age}"
# # v = tempalte.format(name='alex',age=19)
# v = tempalte.format(**{"name": 'alex','age': 19})
# print(v)
# 三、列表
  1、append列表尾部追加元素
  2、extend一次性在列表尾部添加多个元素
  3、insert在指定位置插入元素
    insert(0,"tom") 0表示按索引位置插值
  4、del删除
  5、pop默认删除最后一个元素,并将删除的值返回,括号内可通过加索引值来指定删除元素
  6、remove括号内指名道姓表示要删除哪个元素,没有返回值
  7、reverse颠倒列表内元素顺序
  8、sort排序时列表元素之间必须是相同数据类型,不可混搭,否则报错 默认从小到大排序
    l=[11,22,3,42,7,55]
    l.sort(reverse=Ture) reverse用来指定是否跌倒顺序,默认为False
    [55,42,22,11,7,3]
# 四、元组
  在()内用逗号分隔开多个任意值
    countries=("中国","美国","英国") 本质countries=tuple("中国","美国","英国")
    强调:如果元组内只有一个值,则必须加一个逗号,否则()就只是包含的意思而非定义元组
    countries=("中国",) 本质countries=tuple("中国")
# 五、字典
  定义:在{}内用逗号分隔开多元素,每一个元素都是key:value的形式,其中value可以是任意类型,而key则必须是不可变类型,通常key应该是str类型,因为str类型会对value有描述性的功能
    info={'name':'tony','age':18,'sex':'male'}
    info=dict(name='tony',age=18,sex='male')
  fromkeys会从元组中取出每个值当作key,然后与none组成key:value放到字典中
info={}.fromkeys(('name','age','sex'),None)
print(info)
dic={
    'name':'xxx',
    'age':18,
    'hobbis':['play game','basketball']
}
print (dic['hobbis'][0])
dic={
    'name':'xxx',
    'age':18,
    'hobbis':['play game','basketball']
}
#对于赋值操作,如果key原先就不存在于字典,则会新增key:value的值
dic['gender']='male'
print (dic)
#对于赋值操作,如果key原先存在于字典,则会修改对应value的值
dic['name']='tony'
print(dic)

#长度
print(len(dic))

#成员运算in和not in
print ('name' in dic) #判断某个值是否是字典的key

#删除
dic.pop('name') #通过指定字典的key来删除字典的键值对
print (dic)

#获取字典所有的key
print(dic.keys())

#获取字典所有的value
print(dic.values())

#获取字典所有的键值对
print(dic.items())
dic={
    'name':'xxx',
    'age':18,
    'hobbis':['play game','basketball']
}
#默认遍历的是字典的key
for key in dic:
    print (key)

#只遍历key
for key in dic.keys():
    print (key)

#只遍历value
for key in dic.values():
    print (key)

#遍历key和value
for key in dic.items():
    print (key)
#coding=utf-8
dic={'k1':'jason','k2':'tony','k3':'JY'}
print(dic.get('k1')) #若key值存在,则获取key对应value的值

res=dic.get('XXX')
print(res) #key不存在,不会报错而是默认返回None

v=dic.pop('k2')
print (dic) #删除指定的key对应的键值对,并返回值

dic1={'k1':'jason','k2':'tony','k3':'JY'}
item=dic1.popitem() #随机删除一组键值对,并将删除的键值放到元组内返回
print (dic1)
print (item)

dic2={'k1':'jason','k2':'tony','k3':'JY'}
dic2.update({'k1':'JN','k4':'XXX'})#用新字典更新旧字典,有则修改,无则添加
print (dic2)

dic3={'k1':111,'k2':222}
res1=dic3.setdefault('k3',333) #key不存在则新增键值对,并将新增的value返回
res2=dic3.setdefault('k1',666) #key存在则不做任何修改,并返回已存在key对应的value值
print (res1)
print (res2)
print (dic3)

   集合

    定义:在{}内用逗号分隔开多个元素,集合具备以下3个特点

    1:每个元素必须是不可变类型

    2:集合内没有重复的元素

    3:集合内元素无序

  s={1,2,3,4}  本质s=set({1,2,3,4})

  注意1:列表类型是索引对应值,字典是key对应值,均可以取得单个指定的值,而集合类型既没有索引也没有key与值对应,所以无法取得单个的值,而对于集合来说,主要用于去重与关系元素,根本没有取出单个指定值这种需求

  注意2:{}既可以用于定义dict,也可以用于定义集合,但是字典内的元素必须是key:value的格式,现在我们想定义一个空字典和空集合,该如何准确去定义两者?

    d={}默认是空字典

    s=set()这是空集合

 

  类型转换:

    但凡能被for循环的遍历的数据类型(强调:遍历出的每一个值都必须为不可变类型)都可以传给set()转换成集合类型

    

s = set([1,2,3,4])
s1 = set((1,2,3,4))
s2 = set({'name':'jason'})
s3 = set('egon')
print(s,s1,s2,s3)

  合集:|    求两个集合所有元素,重复的只保留一个

    1|2

  交集:&     求两个集合的共同元素

    1&2

  差集:-  

    1-2  求1集合独有的元素

    2-1  求2集合独有的元素

  对称差集^    求两个集合独有的元素的集合(就是去掉共同的元素)

    1^2

  值是否相等(==) 结果为布尔值

    1==2

  父集:

    包含则返回True     {1,2,3}>{1,2}    {1,2,3}>={1,2}

    不存在包含关系则返回False    {1,2,3}>{1,3,4,5}   {1,2,3}>={1,3,4,5}

  子集:

    {1,2}<={1,2,3}

 

  去重:

    1.只能针对不可变类型

    2.集合本身是无序的,去重之后无法保留原来的顺序

#针对不可变类型,并且保证顺序则需要我们自己写代码实现
l=[
    {'name':'lili','age':18,'sex':'male'},
    {'name':'jack','age':73,'sex':'male'},
    {'name':'tom','age':20,'sex':'female'},
    {'name':'lili','age':18,'sex':'male'},
    {'name':'lili','age':18,'sex':'male'},
]

new_l=[]
for dic in l:
    if dic not in new_l:
        new_l.append(dic)
print (new_l)

 

# 六、布尔值
# 0 1
# bool(...)
# None "" () [] {} 0 ==> False

可变数据类型:值发生改变时,内存地址不变,即id不变,证明在改变原值(列表,字典)
不可变数据类型:值发生改变时,内存地址也发生了改变,即id也变,证明是没有在改变原值,是产生了新的值(字符串,数字,元组)

访问顺序:
1.顺序访问:字符串,列表,元组
2.映射:字典
3.直接访问:数字

存放元素个数:
容器类型:列表,元组,字典
原子:数字,字符串
posted @ 2018-10-22 13:15  JXJing  阅读(16)  评论(0)    收藏  举报