欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python数据类型及常用方法

程序员文章站 2022-03-07 17:18:18
数字类型 #1. 整型 a1 = 10 a2 = int(20) #2. 长整型(py2特有,py3废弃) b1 = 12345678901234567890 b2 = long(100) #3. 浮点型 c1 = 3.14 c2 = float(5.12) #4. 复数类型 d = 2 + 3j ......

 数字类型

#1. 整型
a1 = 10
a2 = int(20)

#2. 长整型(py2特有,py3废弃)
b1 = 12345678901234567890
b2 = long(100)

#3. 浮点型
c1 = 3.14
c2 = float(5.12)

#4. 复数类型
d = 2 + 3j

 字符串类型

#1. 单行字符串
>>> s1 = 'abc'
>>> ss1 = "xyz"

#2. 多行字符串
>>> s2 = """first line
second line
last line"""

#3. 字符串嵌套
#i) 单、双、三引号直接可以相互嵌套
#ii) 同类型引号直接嵌套需要转义:\' | \"

#4. 索引取值
>>> s4 = 'oldboy'
#i) 正向取值从0开始:
>>> s4[0]
'o'
#ii) 逆向取值从-1开始:
>>> s4[-1]
'y'

#5. 切片(顾头不顾尾,切片有步长)
>>> s5 = 'my love'
语法:[起始索引:结束索引:步长]
>>> s5[0:6:2]
'm o'


'''
i) 步长省略,默认为1
ii) 起始索引省略,默认为从头开始
iii) 结束索引省略,默认到最后结束
'''

#6. 长度
>>> s6 = 'oldboy'
>>> len(s6)
>>> s6.__len__()

#7. 成员运算
语法:in | not in:子字符串是否在父字符串中
>>> 'he' in 'hello'
true

#8. 首尾去白
语法:strip()
>>> ' hello wolrd   '.strip()
'hello world'
>>> '===login success==='.strip('=')
'login success'

#9. 拆分
语法:split(拆分规则, 拆分次数)
>>> 'd:\\python36\\python3.exe'.split('\\', 1)
['d:', 'python36\\python3.exe']

#10. 纯数字判断isdigit() 方法检测字符串是否只由数字组成语法:isdigit() >>> '18'.isdigit() 
true

#11. 循环(迭代)
s10 = 'hello wolrd'
count = 0 
while count < len(s10):
  print(s10[count])
   count += 1 
for s in s10: 
  print(s)
''' 总结:
 1. 只可以存放一个值:s = 'abc' 
 2. 为不可变类:s = 'xyz' 
'''

#常用方法
#1. lstrip | rstrip:左 | 右 取留白 
#2. rsplit:从右开始拆分
#3. lower | upper:全小 | 大写 
#4. startswith | endswith:以某某开头 | 结尾 
#5. format:格式化 
>>> 'name:{},age:{}'.format('owen', 16)
'name:owen, age:16'
>>> 'name:{0},age:{1}'.format('owen', 16)
'name:owen, age:16'
>>>'name:{name},age:{age}'.format(name='owen', age=16) 
'name:owen, age:16'
#6. replace:替换 语法:replace(olds, news, count)
#其他方法
#1. find | rfind:查找子字符串索引,无结果返回-1 
#2. index | rindex:查找子字符串索引,无结果抛出异常 
#3. count:计算子字符串个数 
#4. center | ljust | rjust | zfill:按位填充 语法:center(所占位数, '填充符号')
>>> s = '12' 
>>> print(s.center(10,'3'))
3333123333
>>> print(s.ljust(10,'3')) 
1233333333
>>> print(s.rjust(10,'3')) 
3333333312
#5. expandtabs: #规定\t所占空格数
#6. captialize | title | swapcase:首字母大写 | 单词首字母大写 | 大小写反转
#7. isdigit | isdecimal | isnumeric:数字判断
#isgigit 检测字符串是否只有数字组成
#isdecimal 检测字符串是否只包含十进制字符
#isnumeric 检测字符串是否只由数字组成。 这种方法是只针对unicode对象。
>>> str = u"this2009"; 
>>> print str.isnumeric();
>>> false

>>> str = u"23443434"; 
>>> print str.isnumeric(); 
>>> false 
#8. isalnum | isalpha:是否由字母数字组成 | 由字母组成 
#9. isidentifier:是否包含关键字 
#10. islower | isupper:是否全小 | 大写 
#11. isspace:是否是空白字符 
#12. istitle:是否为单词首字母大写格式 ''' 了解:字符串运算 ''' 

 列表

#1. 声明:可以包含不同类型数据,可以嵌套,[]
>>> l1=[1,'age',true,18.0]
#2. 索引取值:支持正向反向
>>> l1[1]
'age'
>>> l1[-1]
18.0
#3. 切片(顾头不顾尾,切片有步长)
>>> l1[0:2]
[1,'age']
#4. 长度
>>> len(l1)
4
#5. 成员运算
#6. 增删改
l = [1, 2, 3, 4, 5]
增:append(obj) | insert(index, obj)
>>> l.append(6)
>>> l
[1,2,3,4,5,6]
>>> l.insert(1,6)
>>> l
[1,6,2,3,4,5,6]

删:remove(obj) | del(list[index]) | pop(index)
>>> l.remove(1)
>>> l
[6,2,3,4,5,6]
>>> del(l[1])
>>> l
[6,3,4,5,6]
>>> l.pop()
6
>>> l
[6,3,4,5]
>>> l.pop(0)
[3,4,5]
改:l[index] = newobj
>>> l[0]=1
>>>l
[1,4,5]
#7. 循环
for item in l:
    print(item)
1
4
5
#8. 反转
语法:reverse()
>>> list1=[1,2,3]
>>> list1.reverse()
>>> list1
[3,2,1]
#9. 排序
语法:sort(reverse=true) reverse=true从大到小,反之从小到大
>>> list1 = [2,3,1,5,6]
>>> list1.sort(reverse=true)
>>> list1
[6,5,3,2,1]

'''
总结:
1. 可以存放多个值:list = [1, 2, 3]
2. 为可变类型:list.append(4)
3. 有序存储:排列的索引取值
'''

#其他方法
#1. copy:复制
>>> list1 = [1,2,3]
>>> list1.copy()
[1,2,3]
#2. clear:清空
>>> list1.clear()
>>> list1
[]
#3. count:计算成员个数
>>> list1 = [3,4,5]
>>> list1.count(3)
1
#4. extend:添加多个值(参数为可迭代对象)
>>> list1.extend([6,7,8])
>>> list1
[3,4,5,6,7,8]
#5. index:查找索引
>>> list1.index(3)
0

 

元祖

#1. 声明:可以包含不同类型数据,可以嵌套,()
t1 = (1,'11',11.0,true)
2. 索引取值:支持正向反向
>>> t1 = (1,'11',11.0,true)
>>> t1[1]
'11'
>>> t1[-1]
true

'''
总结:
1. 可以存放多个值:t = (1, 2, 3)
2. 为不可变类型
3. 有序存储:排列的索引取值
'''

 

字典

#1. 声明:key为不可变类型数据,value可以为任意类型,{}
d1 = {'name': 'owen'}
d2 = dict(name='owen')
d3 = dict([('name','owen')])
d4 = {}.fromkeys(['name'], none)

2. 增删改查
增:d2['newkey'] = value
删:pop('key', defalutvalue) #如果没有key,返回defaulvalue
改:d2['key'] = newvalue
查:d1['key']
了解:popitem():从末尾开始删除,返回(key, value)
>>> d1 = {'name':'dgt'}
>>> d1['name1':'boduo']
>>> d1
{'name':'dgt','name1':'boduo'}
>>>
>>>d1.pop('name')
>>> d1
{'name1':'boduo'}
>>>
>>> d1[name1] = 'cangjin'
>>> d1
{'name1':'cangjin'}
>>>
>>> d1['name1']
'cangjin'

3. 长度:len
>>> len(d1)
1
4. 成员运算:in | not in(用于判断key是否在字典里)
>>> d1 = {'key1':'value1','key2':'value2'}
>>> 'key1' in d1
true
>>> 'value1' in d1
false

5. 循环
i) 直接for循环
ii) keys()
iii) values()
iv) items()
>>> d1 = {'key1':'value1','key2':'value2'}
>>> for d in d1:
...     print(d)
... 
key1
key2
>>> d1.keys()
dict_keys(['key1', 'key2'])
>>> for k in d1.keys():
...     print(k)
... 
key1
key2
>>> d1.values()
dict_values(['value1', 'value2'])
>>> for v in d1.values():
...     print(v)
... 
value1
value2
>>> d1.items()
dict_items([('key1', 'value1'), ('key2', 'value2')])
>>> for i in d1.items():
...     print(i)
... 
('key1', 'value1')
('key2', 'value2')
#6. 默认值取值:get
语法:get(key, defalutvalue)
>>> d1.get('key1')
'value1'
>>> d1.get('key3',3)
3
#7. 更新
语法:update(newdict)
>>> d1.update({'name': 'dgt', 'age': 18})
>>> d1
{'key1': 'value1', 'key2': 'value2', 'name': 'dgt', 'age': 18}


8. 设置默认
语法:setdefault(key, defalutvalue)
setdefault(key[, default]) if key is in the dictionary, return its value. if not, insert key with a value of default and return default. default defaults to none.
'''
>>> d1 = {}
>>> d1.setdefault('key','default')
'default'
>>> d1
{'key': 'default'}
>>> d1.setdefault('key','newdefault')
'default'
>>> d1
{'key': 'default'}

'''
总结:
1. 可以存放多个值:dic = {'name': 'owen', age: 18}
2. 为不可变类型
3. 无序存储:安装key取值
'''

 

集合

#1. 声明:
s = {1, 2, 3, 4, 5}

#2. 集合运算
&交集 | |合集 | ^对称差集 | -差集 | 比较
>>> s1 = {1,2,3,4,5}
>>> s2 = {4,5,6,7,8}
>>> s1&s2
{4,5}
>>> s1|s2
{1,2,3,4,5,6,7,8}
>>> s1^s2
{1,2,3,6,7,8}
>>> s1-s2
{1,2,3}
>>> s2-s1
{8,6,7}