python 数据类型

Python 一共有5中数据类型

  • number型
  • string型
  • list(列表)型
  • tuple (元组)型
  • dictionary(字典)型

1.数字 number型

  • int(整型)
  • float(浮点型)
  • long(长整型)
  • complex(复数)

小整型对象池

在python中,所有的对象都存在于系统堆上。想想?如果某个小整数出现的次数非常多,那么Python将会出现大量的malloc/free操作,这样大大降低了运行效率,而且会造成大量的内存碎片,严重影响Python的整体性能。

在Python2.5乃至3.3中,将小整数位于[-5,257)之间的数,缓存在小整型对象池中

2.string型

(1) 去掉空格和特殊符号

name.strip()  去掉空格和换行符(注意字符串中间的空格不能去除)

name.lstrip()  去掉左边的空格和换行符

name.rstrip()  去掉右边的空格和换行符

name="  ab   c  "
print(name.strip())
print("去掉左边空格:"+name.lstrip())
print("去掉右边空格:"+name.rstrip())
# 结果:
ab   c
去掉左边空格:ab   c  
去掉右边空格:  ab   c

(2) 字符串的搜索和替换

name.count('x')  查找某个字符在字符串里面出现的次数

name.capitalize()  首字母大写

name.center(n,'-')   把字符串放中间,两边用- 补齐

str1="anjgggggslkljl"
print(str1.__len__())
print(str1.count('a'))
print(str1.capitalize())
print(str1.center(25,'-'))//  注意:把字符串放中间,两边用(n-字符串的长度)/2补齐
# 结果:
# 14
# 1
# Anjgggggslkljl
# ------anjgggggslkljl-----

name.find('x')   找到这个字符返回下标,多个时返回第一个;不存在的字符返回-1

name.index('x') 找到这个字符返回下标,多个时返回第一个;不存在的字符报错

name.replace(oldstr, newstr)  字符串替换

name.len(str)  字符串长度

str1="anjgggggslkljl"
print(str1.find("a"))
print(str1.find("g"))
print(str1.find("c"))
print(str1.index("a"))
print(str1.index("c"))
print(len(str1))
print(str1.replace("a","ADDa"))
print(str1.startswith("a"))
print(str1.endswith("m"))
print('--'.join(str1))
# /连接字符串.join(slit)      用逗号连接slit 变成一个字符串,slit 可以是字符,列表,字典(可迭代的对象)
# 注意  :int 类型不能被连接
# 结果
# 0
# 3
# -1
# 0
# ValueError: substring not found   传给函数的参数类型不正确,比如给int()函数传入字符串形 :没有找到字符串
# 14
# ADDanjgggggslkljl
# True
# False
#a--n--j--g--g--g--g--g--s--l--k--l--j--l

(3) 字符串的测试和替换函数

 

s.swapcase() #大小写互换

s.isalnum()方法检测字符串是否由字母和数字组成。
s.isalpha() #是否全是字母,并至少有一个字符 
s.isdigit() #是否全是数字,并至少有一个字符 
s.isspace() #是否全是空白字符,并至少有一个字符 
s.islower() #S中的字母是否全是小写 
s.isupper() #S中的字母是否便是大写 
s.istitle() #S是否是首字母大写的

str = "this is apple ";
print(str.startswith( 'this' ));
print (str.startswith( 'is', 2, 4 ));
print (str.startswith( 'this', 2, 4 ));
print (str.startswith( 'this', 0, len(str)));
结果:
True
True
False
True

(4) 字符串的分割

name.split()  默认是按照空格分割

name.split(',')   按照逗号分割

name="adh-jap-jn mzn c i -illl-ping"
print(name.split())
print(name.split('-'))

# 结果:
# ['adh-jap-jn', 'mzn', 'c', 'i', '-illl-ping']
# ['adh', 'jap', 'jn mzn c i ', 'illl', 'ping']

(5) 截取字符串(切片)

str2 ="123456789"
print(str2[0:3]) #前包后不包123
print(str2[:])#截取字符串的全部字符
print (str2[6:]) #截取第七个字符到结尾789
print (str2[:-3]) #截取从头开始到倒数第三个字符之前123456
print (str2[-1]) #截取倒数第一个字符9
print (str2[-5:-1]) #截取倒数第五位与倒数第一位之前的字符5678 
print (str2[:-5:-1])#逆序截取9876
print (str2[-3:]) #截取倒数第三位到结尾789
print (str2[::-1]) #创造一个与原字符串顺序相反的字符串987654321
print(str2[::-2]) #创造一个与原字符串顺序相反的字符串 97531
print (str2[:-5:-2])#逆序截取97

*(精选)字符串截取
str[:]截取全部字符
str[0:3] 截取1-3位的字符
str[2]截取第三个字符
str[-1]截取最后一个字符
str[: :-1]与原字符串顺序相反的字符串

3.列表(list)

长度可变,支持数字,字符串,布尔,不支持元祖

list1=["a","b",1,2,3]
取值:
print(list1[0])
>>> "a"
赋值
list1[0]=100
print(list1)
>>>[100,"b",1,2,3]
增添
list1.append(35)  #加在列表的最后
print(list1)
>>>["a","b",1,2,3,35]
查看
for x in list1:
    print(x)
>>>a,b,1,2,3
删除
list.pop() 删除列表最后一个元素
list.pop(2)删除列表中下标为2的元素
list.remove()括号中为列表中的某一元素
list1.remove("b")
print(list1)
>>>["a",1,2,3]
排序
list1.sort()  正序
list1.sort(rverse=True)  倒序
列表中只有数字或只有字母时才可以排序,不允许互相掺杂排序

4.dictionary(字典)型

长度可变  键是唯一的,值可以重复

定义语法:d={k: value,k1: value1,...........  }

# 字典是一个无序的数据集合,使用print函数输出字典时,通常
# 输出的顺序和定义的顺序是不一致的!
xiaoming = {"name": "小明",
            "age": 18,
            "gender": True,
            "height": 1.75,
            "weight": 75.5}
print(xiaoming)
#{'name': '小明', 'age': 18, 'gender': True, 'height': 1.75, 'weight': 75.5}
2.字典的使用

xiaoming_dict = {"name": "小明"}
# 1. 取值
print(xiaoming_dict["name"])
#小明
# 在取值的时候,如果指定的key不存在,程序会报错!
# print(xiaoming_dict["name123"])
# 2. 增加/修改
# 如果key不存在,会新增键值对
xiaoming_dict["age"] = 18
# 如果key存在,会修改已经存在的键值对
xiaoming_dict["name"] = "小小明"
# 3. 删除
xiaoming_dict.pop("name")
# 在删除指定键值对的时候,如果指定的key不存在,程序会报错!
# xiaoming_dict.pop("name123")
print(xiaoming_dict)
#{'age': 18}
3.字典的其他操作

xiaoming_dict = {"name": "小明",
                 "age": 18}
# 1. 统计键值对数量
print(len(xiaoming_dict))#2
# 2. 合并字典
temp_dict = {"height": 1.75,
             "age": 20}
# 注意:如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
xiaoming_dict.update(temp_dict)
print(xiaoming_dict)#{'name': '小明', 'age': 20, 'height': 1.75}
# 3. 清空字典
xiaoming_dict.clear()
print(xiaoming_dict)#{}

5.set集合

长度可变,不可重复,无序排列,值不可以修改


set={"",1}
set.add() 添加位置是随机的
删除
set.remove()
set.discard()
清除  clear
随机删除 pop
拷贝 copy
set1=set2.copy()   #拷贝会覆盖其原有的值
set1.update(set2)
功能:更新已有集合
name = {'sd', 'd', 's'}
name.update('df')
print(name)
返回结果:{'sd', 'd', 'f', 's'}

6.集合列表相互转化

5.元祖
长度可变,可以重复,有序,有索引,值不可以修改,可嵌套,可存储各种类型的值
t=(1,2,3,)
含有单个元素的元祖 t=(2,)

嵌套:
t=(1,2,["a","b"])
t[2][0]
>>>a

t--->list   #元组转列表
list((1,2,3))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值