5.数据类型内置方法

【一】数据类型内置方法

1)整数类型(int)

1.类型强转

可将符合整数格式的字符串转换成整数类型

print(int('5'))

2.进制转换

  • 十进制转二进制 0b

    print(bin(999))  # 0b1111100111
    
  • 十进制转八进制 0o

    print(oct(999))  # 0o1747
    
  • 十进制转十六进制 0x

    print(hex(999))  # 0x3e7
    
  • 其他转十进制

    print(int(0b1111100111))
    print(int(0o1747))
    print(int(0x3e7))
    #999
    

2)浮点数类型(float)

1.类型强转

print(float(12))	#12.0
print(float('12.5'))	#12.5

2.判断当前类型是否是整数或浮点数

num1 = b'4'	# bytes
num2 = '4'	# unicode
num3 = '四'	# 中文数字
num4 = 'Ⅳ'	# 罗马数字
  • 判断是否为数字类型(.isdigit)

    print(b'4'.isdigit())  # True
    print('4'.isdigit())  # True
    print('四'.isdigit())  # False
    print('Ⅳ'.isdigit())  # False
    
  • 判断是否为小数点类型(.isdecimal)

    print('4'.isdecimal())  # True
    print('四'.isdecimal())  # False
    print('Ⅳ'.isdecimal())  # False
    
  • 判断是否为小数点类型(.isnumeric)

    print('4'.isnumeric())  # True
    print('四'.isnumeric())  # True
    print('Ⅳ'.isnumeric())  # True
    

均无法判断浮点数

3)字符串类型(str)

1.字符串拼接(+和.join)

  • + 拼接

    a = 'hello'
    b = 'world'
    print(a+b)	#helloworld
    
  • .join()拼接

    print('-'.join('hello'))	#h-e-l-l-o
    

2.索引取值( [ ] )

  • 正索引,负索引,只能取值不能修改

3.切片([起始:结尾:步长])

  • 切片顾头不顾尾

  • 步长

    print('0123456789'[2:7:2])	#246
    
  • 负索引切片(左小右大)

    print('0123456789'[-7:-2:2])	#357
    

4.计算长度(len())

print(len('0123456789'))	#10

5.成员运算

  • in 和 not in

    print('e' in 'hello')	True
    

6.去除空格(.strip)

  • 去除两边空格(.strip())

    word='   hello   '
    print(word.strip())	#hello
    
  • 左去除(.lstrip())

  • 右去除(.rstrip())

  • 去除两边指定字符(.strip('指定符号'))

7.切分(.split())

默认空格,括号内可指定字符,切分字符消失

user = 'v_123'
print((user).split('_'))	#['v', '123']

8.替换(.replace('旧','新'))

print(name_a.replacea('a','b'))	#name_b

9.遍历(for _ in _)

将每一个元素看一遍

for i in 'hello':
    print(i)
#h
#e
#l
#l
#o

10.重复当前元素

print("v" * 5)	#vvvvv

11.大小写转换

  • 小写转大写(.upper())

    # print('Name'.upper())	#NAME
    
  • 大写转小写(.lower())

    # print('Name'.lower())	#name
    
  • 判断是否是全大写或小写

    print('name'.islower())	#True
    print('name'.isupper())	#False
    

12.判断字符开头结尾

  • 判断开头(.startswith())
  • 判断结尾(.endswith())

13.格式化输出

  • s%,d%
  • .formate
  • f{}

——————

14.查找

  • .find()

    • 从左向右查找位置,只找一次,找不到返回-1
    • 可指定区间(.find(查找内容,区间))
  • .rfind()

    • 从右向左查找位置
  • .index()

    • 同find,找不到会报错
  • .rindex()

    • 从右向左查找位置
  • .count()

    • 统计出现次数

15.填充

  • .center()

    • 填充两侧

    • 填充长度要高于给定字符长度

    • 若为奇数左少右多

      print(name.center(len(name) + 3, '*'))
      
  • .ljust()

    • 右填充
  • .rjust()

    • 左填充
  • .zfill

    • 左侧填充0

16.制表符

  • \t
    • 默认代表一个空格

17.字母大小写

  • .capitalize()
    • 句子首字母大写
  • .title()
    • 每个单词首字母大写
  • .swapcase()
    • 字母大小写颠倒
name = 'Dream123'
print(name.islower())    # 字符串是否是纯小写,True
print(name.isupper())    # 字符串是否是纯大写,False
print(name.isalnum())    # 字符串中既可以包含数字也可以包含字母,True
print(name.isalpha())    # 字符串中只包含字母,False
print(name.isidentifier())  # 字符串是否是合法标识符,True
print(name.isspace())    # 字符串是否全是空格,False
print(name.istitle())    # 字符串中的单词首字母是否都是大写,False

4)列表类型(list)

1.类型强转(list())

# 字符串
print(list('hello'))	#['h', 'e', 'l', 'l', 'o']
# 元组
print(list((1,2,'a')))	#[1, 2, 3, 'a']
# 字典
print(list({'a':1,'b':'c'}))	#['a', 'b']
# 集合
print(list({1,2,3,3}))	#[1, 2, 3]
# range关键字
print(list(range(0, 5)))	#[0, 1, 2, 3, 4]

2.索引取值

  • 只能取不能改,无则报错

3.切片

  • 顾头不顾尾

4.计算长度(len())

5.成员运算

  • in 和 not in

6.增加

  • 追加(.append())

    • 默认追加到末尾
    number = [1, 2, 3]
    number.append(4)
    print(number)	#[1, 2, 3, 4]
    
  • 一次添加多个(.extend())

    • 一次性在列表尾巴添加多个元素,合并列表
    number = [1, 2]
    num = [3, (4, 'a')]
    number.extend(num)
    print(number)  # [1, 2, 3, (4,'a')]
    
  • 指定位置添加(.insert(位置,内容))

    number = [1, 2, 3]
    number.insert(1, 'a')
    print(number)  # [1, 'a', 2, 3]
    

7.删除

  • 删除指定位置元素(del)

    number = [1, 2, 3]
    del number[1]
    print(number)  # [1, 3]
    
  • 弹出(.pop())

    • 默认删除最后一个元素,并将删除的值返回
    number = [1, 2, 3]
    a = number.pop(1)
    print(number,a)		#[1, 3] 2
    
  • 删除指定元素(.remove())

    • 括号内指定元素,无返回值,只删除一次,没有会报错
    number = [1, 2, 3, 2]
    number.remove(2)
    print(number)  # [1, 3, 2]
    

8.颠倒元素(.reverse())

number = [1, 2, 3]
number.reverse()
print(number)	#[3, 2, 1]

9.元素排列(.sort())

  • 默认升序排列

    • 无返回值
    number = [1, 5, 9, 3, 4]
    number.sort()
    print(number)  #[1, 3, 4, 5, 9]
    
  • 降序

    number = [1, 5, 9, 3, 4]
    number.sort(reverse=True)
    print(number)  #[9, 5, 4, 3, 1]
    
  • 只反转

    • 有返回值
    num_list = [1, 5, 9, 3, 4]
    num_new = sorted(num_list, reverse=True)
    print(num_new)	#[9, 5, 4, 3, 1]
    print(num_list)	#[1, 5, 9, 3, 4]
    

10.遍历循环

name = ['tom', 'v', 'lihua']
for i in name:
    print(i)
# tom
# v
# lihua
name = ['tom', 'v', 'lihua']
index = 0
while index < len(name):
    print(name[index])
    index += 1
# tom
# v
# lihua

11.步长

number = [1, 2, 3, 4, 5, 6]
# 正向步长
print(number[::2])  # [1, 3, 5]
# 反向步长
print(number[::-2])  # [6, 4, 2]
# 列表反转
print(number[::-1])  # [6, 5, 4, 3, 2, 1]

5)字典类型(dict)

1.取值

  • [key]

    • 不存在会报错
    user = {'name':'v','age':30}
    print(user['name'])	#v
    
  • .get()取值

    • 不存在返回None
    user = {'name':'v','age':30}
    print(user.get('name'))	#v
    

2.计算元素个数(len())

user = {'name': 'v', 'age': 30}
print(len(user))	# 2

3.成员运算

  • in 和 not in

4.增加

  • 字典[键]=值

    • 存在对应值会覆盖,不存在会添加
    user = {'name': 'v', 'age': 30}
    user['sex'] = 'man'
    user['name'] = 'dive'
    print(user)  # {'name': 'dive', 'age': 30, 'sex': 'man'}
    
  • 增加值并返回值(.setdefault())

    • 有返回值
    user = {'name': 'v', 'age': 30}
    new_user = user.setdefault('sex','man')
    print(new_user)	# man
    print(user)  # {'name': 'dive', 'age': 30, 'sex': 'man'}
    
  • 批量增加(.update())

    • 存在对应值会添加
    user = {'name': 'v', 'age': 30}
    new_user = {'sex': 'man', 'hobby': 'music'}
    user.update(new_user)
    user.update(hobby='run')
    print(new_user)  # {'sex': 'man', 'hobby': 'music'}
    print(user)  # {'name': 'v', 'age': 30, 'sex': 'man', 'hobby': 'run'}
    

5.删除

  • 删除键(del)

    user = {'name': 'v', 'age': 30}
    del user['age']
    print(user)  # {'name': 'v'}
    
  • 弹出键值对(.pop())

    • 有返回值
    user = {'name': 'v', 'age': 30}
    age = user.pop('age')
    print(age)  # 30
    print(user)  # {'name': 'v'}
    
  • 清空字典(.clear())

    user = {'name': 'v', 'age': 30}
    user.clear()
    print(user)  # {}
    
  • 弹出最后一个键值对(.popitem())

    user = {'name': 'dive', 'age': 30, 'sex': 'man'}
    a = user.popitem()
    print(a)  # ('sex', 'man')
    print(user)  # {'name': 'dive', 'age': 30}
    

6.取字典的对值

  • 键对(.keys())

    • 取所有的键,返回一个可迭代的值
    user = {'name': 'dive', 'age': 30, 'sex': 'man'}
    key = user.keys()
    print(key)  # dict_keys(['name', 'age', 'sex'])
    
  • 值对(.values())

    • 取所有的值,返回一个可迭代的值
    user = {'name': 'dive', 'age': 30, 'sex': 'man'}
    key = user.values()
    print(key)  # dict_values(['dive', 30, 'man'])
    
  • 键值对(.items())

    • 取所有的键值,返回一个可迭代的值
    user = {'name': 'dive', 'age': 30, 'sex': 'man'}
    key = user.items()
    print(key)  # dict_items([('name', 'dive'), ('age', 30), ('sex', 'man')])
    

7.遍历循环

user = {'name': 'dive', 'age': 30, 'sex': 'man'}
# 遍历key
for key in user:
    print(key)
# name
# age
# sex
# 遍历 value
for value in user.values():
    print(value)
# dive
# 30
# man

6)元组类型(tuple)

1.类型强转

# 字符串
print(tuple('hello'))  # ('h', 'e', 'l', 'l', 'o')
# 列表
print(tuple([1, 2, 'a']))  # (1, 2, 'a')
# 字典
print(tuple({'a': 1, 'b': 'c'}))  # ('a', 'b')
# 集合
print(tuple({1, 2, 3, 3}))  # (1, 2, 3)
# range关键字
print(tuple(range(0, 5)))  # (0, 1, 2, 3, 4)

2.索引取值

  • 可存可取,无则报错

3.切片

  • 顾头不顾尾

4.计算长度(len())

5.成员运算

  • in 和 not in

6.遍历循环

fruit_tuple = ('apple', 'banana', 'cherry')
for i in fruit_tuple:
    print(i)
# apple
# banana
# cherry

7.元组拼接

print((1, 2, 3) + (2, 3, 4))
# (1, 2, 3, 2, 3, 4)

8.元组拼接

print((1, 2, 3) + (2, 3, 4))
# (1, 2, 3, 1, 2, 3, 1, 2, 3)

7)布尔类型(bool)

1.强转类型

  • 只会转成True和False

假:False,数字0,空值

8)集合类型(set)

  • 无序性,去重性

1.类型强转

# 字符串
print(set('hello'))	#{'l', 'o', 'h', 'e'}

2.计算长度len())

3.成员运算

  • in 和 not in

4.遍历循环

5.添加元素

  • 添加单个元素(.add())

    num = {1,2,3}
    num.add(4)
    print(num)	#{1, 2, 3, 4}
    
  • 添加多个元素(.update())

    num = {1, 2, 3}
    num.update([3, 4, 5])
    print(num)  # {1, 2, 3, 4, 5}
    

6.删除元素

  • 删除指定元素(.remove())

    • 没有会报错
    num = {1, 2, 3}
    num.remove(2)
    print(num)  # {1, 3}
    
  • 删除指定元素(.discard())

    • 没有不会报错
    num = {1, 2, 3}
    num.discard(2)
    print(num)  # {1, 3}
    
  • 删除随机元素(.pop())

    • 仅集合类型不能指定
    • 纯数字会删除最小
    num = {'a','b','c'}
    num.pop()
    print(num)
    

7.集合运算

num_1 = {1, 2, 3}
num_2 = {3, 4, 5}
# 并集(.union())
print(num_1.union(num_2))  # {1, 2, 3, 4, 5}
# 交集(.intersection())
print(num_1.intersection(num_2))  # {3}
# 差集(.difference())
print(num_1.difference(num_2))  # {1, 2}
# 对称差集(.symmetric_difference())
print(num_1.symmetric_difference(num_2)) #{1, 2, 4, 5}
num_1 = {1, 2, 3, 4}
num_2 = {2, 3}
# 父集(.issuperset())
print(num_1.issuperset(num_2))
# 子集(.issubset())
print(num_1.issubset(num_2))

8.去重

  • 只能针对不可变类型
  • 去重后无法保留原来顺序
# 针对不可变类型,且要保证顺序
user= [
    {'name': 'lili', 'age': 18, 'sex': 'male'},
    {'name': 'jack', 'age': 73, 'sex': 'male'},
    {'name': 'lili', 'age': 18, 'sex': 'male'},
    {'name': 'lili', 'age': 20, 'sex': 'male'},
]
new_user = []
for dic in user:
    if dic not in new_user:
        new_user.append(dic)
print(new_user)
# [{'name': 'lili', 'age': 18, 'sex': 'male'},
#  {'name': 'jack', 'age': 73, 'sex': 'male'},
#  {'name': 'lili', 'age': 20, 'sex': 'male'}]

总结)

按存储值的个数
存一个值 数字、字符串
存多个值 列表、元祖、字典
按访问方式分
直接访问 数字、布尔
索引访问 列表、集合、元组
关键字访问 字典、映射类型
按是否可变区分
不可变 字符串、数字、布尔、元组、集合
可变 列表、字典
可迭代与不可迭代
不可迭代 数字、布尔
可迭代(可被for遍历) 元组,集合 、列表,字典,字符串、
posted on 2024-04-07 14:34  晓雾-Mist  阅读(1)  评论(0编辑  收藏  举报