Python 基础3:基本的数据类型

基本的数据类型

一、int,整形

  a、创建方式

    n1 = 123

    n2 = int (123)

  b、int内部优化

    默认-5~257的数共用一份地址

    ===》 id(对象内存地址) = id(对象或变量名)

   c、长度限制

    32   -2**31~2**31-1

    64 -2**63~2**63-1

    在py3里面没有限制

二、str,字符串

  a、创建方式

    s1 = “alex”

    s1 = str(“alex”)

  b、特有功能

    sl = "alex"

    1、两端去空格:s1.strip

    2、以。。。开头:s1.startswith()

    3、找子序列“12”,“h”:s1.find()

    4、将字符串中的某子序列替换成指定的值:s1.replace()

    5、变大写:s1.upper()

    6、是。。。吗:s1.isalphe()

    7、join将什么以什么的形式连接起来:

      li = ["alex",'sb']

      l1 = "_".join(li)

      l1对应的值 alex_sb

  c、公共功能

    索引:只能取一个元素

    切片:取多个元素

    len:计算元素长度

      3.5里面是用字符来表示的

      2.7里面是字节

    for:

      3.5里面是用字符来表示的

    

    编码、for:
    name = "李璐"
    for i in name:
      print(i)
      bytes_list = (bytes(i,encoding='utf-8'))
      print(bytes_list)
      for b in bytes_list:
    1、3.5 for循环时候,循环的每一个元素是“字符”


    2、字符==》字节:
      bytes_list = bytes("字符串",encoding="utf-8")

       utf-8 =》 3个字节
       gbf =》 2个字节
      print(bytes_list)#默认每一个字节都是16进制表示
      for b in bytes_list:
        print(b)#默认没一个字节都是10进制表示
  
    3、10进制的数字==》2进制
      len
      id

      bin(加一个10进制的数字,变成2进制)

    

  d、字节和字符串的相互转换:bytes和str

     

              a = "李璐"
            #将字符串转换成字节
            b1 = bytes(a,encoding="utf-8")
            print(b1)
            b2 = bytes(a,encoding='gbk')
            print(b2)

            #将字节转换成字符串
            newal = str(b1,encoding="utf-8")
            print(newal)
            newa2 = str(b2,encoding="gbk")
            print(newa2)                            

三、list,列表

  a、创建方式

    li = [11,22,33,44]

    li = list()

    li = list([11,22,33,44])

  b、转换

    1、字符串转换成列表

s1 = "李璐"
#for,字符==>可迭代
li = list(s1)#for循环,将循环的每一个元素,当做列表的元素
#["李""璐"]
print(li)
#结果:['李', '璐']

    2、元组转换成列表

# 元组转换成列表
t2 = ("acker", "seven", "laolanhai")
l2 = list(t2)
print(l2)
#结果:['acker', 'seven', 'laolanhai']

    3、字典转换成列表

# 字典转换成列表
dic = {"k1": "alex", "k2": "seven"}
l3 = list(dic.items())
print(l3)
#结果:[('k1', 'alex'), ('k2', 'seven')]
# 字典由key和values组成键值对
# 字符串,元组,字典==>列表

  c、特有功能

    li = [111,22,3]

    1、追加:li.append()

    2、清除:li.clear()

    3、翻转,字节内部元素翻转:li.reverse()

    4、向指定位置插入指定元素:li.insert(1,"x")

    5、去空格:li.strip()

    6、

#扩展字节,用另外一个可迭代的对象,扩充到字节内部
# str,list,dic,tuple
li = [111,22,3]
s = "李璐"
li.extend(s)
print(li)
#结果:[111, 22, 3, '李', '璐']

  d、公共功能

    li = ["alex","aric","sevev","123"]

    索引:li[2]

    切片:li[2:3]:::***原来是什么类型取的就是什么类型,列表切片取的也是列表***

    for

    len

    del#删除

    索引嵌套例子:取出第2个“123”:

      li = ["alex", 123, {"k1": "v1", "k2": {"vv": (11, 22, 123), "ii": 456}}]

      li[2] -->{"k1": "v1", "k2": {"vv": (11, 22, 123), "ii": 456}}

      li[2]['k2'] -->{"vv": (11, 22, 123), "ii": 456}

      li[2]['k2']["vv"] -->(11, 22, 123)

      li[2]['k2']["vv"][2]-->123

四、元组

  a、创建和转换

    t = (11,22,33)

    t = tuple((11,22,33))

    t = tuple([])#字符串,列表,字典

#元组转换成列表
t2 = ("acker","seven","laolanhai")
l2 = list(t2)
print(l2)
#结果:['acker', 'seven', 'laolanhai']

  b、特有方法

#元组里面添加内容
#tuple
t = (11,22,["alex",{"k1":"v1"}])
t[2][1]['k2'] = 123
print(t)
#结果:(11, 22, ['alex', {'k1': 'v1', 'k2': 123}])
t[2][1].update({'k3':123})
print(t)
#结果:(11, 22, ['alex', {'k1': 'v1', 'k2': 123, 'k3': 123}])

    count

    index

  c、嵌套(获取元素)

     

t = (11, 22, ["alex", {"k1": "v1"}])
l1 = t[2][1]["k1"]
print(l1)
#结果:v1

  d、元组,特性:

    儿子不能被修改

  e、整理:

    一般字符串,执行一个功能,生成一个新内容,原来内容不变list,tuple,dict,

    执行一个功能,自身进行变化

五、字典

  a、创建

    a = {"k1":123}

    a = dict()

#字典转换成列表
dic = {"k1":"alex","k2":"seven"}
l3 = list(dic.items())
print(l3)
#结果:[('k1', 'alex'), ('k2', 'seven')]
#字典由key和values组成键值对
#字符串,元组,字典==>列表

   b、enumerate的运用

      将列表转换成字典{key:10递加,value:列表里的元素}

li = [11, 22, 33]
new_dict = dict(enumerate(li,10))#enumerate可以自动添加一列KEY,形成字典
print(new_dict)
#结果:{10: 11, 11: 22, 12: 33}

   c、字典里面添加内容:

#字典里面加内容
dic = {"k1":"v1"}
#方法1
# dic.update({'k2':123})
# print(dic)
#方法2
dic['k2'] = 123
print(dic)
#结果:{'k1': 'v1', 'k2': 123}

    

#字典添加的补充简便方法
d = {"k1":'v1'}
# d.update({'k2':123})
d['k2'] = 123#如果换成:d['k1'] = 123是可以把v1更新
print(d)
#结果:{'k1': 'v1', 'k2': 123}

   d、fromkeys的运用

#如何让k1,k2,默认值为alex
dic = {'k1':123,'k2':456,'k4':111}
n = dic.fromkeys(['k1','k2'],'alex')
print(n)
#结果:{'k1': 'alex', 'k2': 'alex'}

六、set 

 1、set是一个无序且不重复的集合

  2、set运用的几个例子

  1、

#set是一个无序且不重复的集合
se = {11,22,33}
#se = set{}默认创建空的集合方式
print(se)
se.add(44)#添加元素
print(se)
se.clear()#默认清楚集合内所有的元素
print(se)

  2、找2个集合的不同

#找2个集合的不同
se = {11,22,33}
be = {22,55}
ae = se.difference(be)
#找se中存在,be中不存在的集合
print(ae)
ae = be.difference(se)
#找be中存在,se中不存在的集合,并将其赋值给新集合
print(ae)

  3、

se = {11,22,33}
be = {22,55}
ret = se.difference_update(be)
#找se中存在,be中不存在的集合,更新自己
print(se)
print(ret)
{33, 11}
None

  4、移除元素

se = {11, 22, 33}
se.discard(11)#移除元素,不报错
se.remove(11)#移除元素,报错
print(se)

  5、   

se = {11, 22, 33}
be = {22,95,"随便"}
# #有交集是False,没交集是Ture
# ret = se.isdisjoint(be)
# print(ret)

  6、

se = {11,22,33,44}
be = {11,22}
ret = se.issubset(be)#se是不是be的子序列
print(ret)
ret = se.issuperset(be)#se是不是be的父序列
print(ret)

  7、删除子序列

se = {11,22,33,44}
be = {11,22}
ret = se.pop()#移除掉子序列
print(ret)
print(se)

  8、合并集合

 

se = {11,22,33,44}
be = {11,22,77,55}
ret = se.symmetric_difference(be)
#合并se,be,里面的不同序列,形成一个新集合ret
print(ret)
#输出结果:{33, 44, 77, 55}
se.symmetric_difference_update(be)
#se和be里面的不同序列,更新成se,形成新的se集合
print(se)
#输出结果:{33, 44, 77, 55}

  9、2个集合形成一个新的集合

se = {11,22,33,44}
be = {11,22,77,55}
ret = se.union(be)
#将,se,be,合并成一个新集合
print(ret)
#输出结果:{33, 11, 44, 77, 22, 55}

  10、添加

se = {11,22,33,44}
be = {11,22,77,55}
se.update(be)
#将be里面的东西添加到se集合里面,be也可以是列表
print(se)
#输出结果:{33, 11, 44, 77, 22, 55}





   

  

    

 

原文地址:https://www.cnblogs.com/Acekr/p/7291371.html