python 数据类型的内置方法

python 数据类型的内置方法

#十进制数转为 其他进制
# print(bin(999))  # 0b1111100111 -- 0b 开头 最大只能到 1
# print(oct(999))  # 0o1747 -- 0o 开头就是八进制 --- 八进制
# print(hex(999))  # 0x3e7 -- 0x 开头就是十六进制 有英文字符的情况就是十六进制

# 其他进制 转为 十进制数
# print(int('0b1111100111', 2))
# print(int('0o1747', 8))
# print(int('0x3e7', 16))

字符串类型(str)

  • round() :取舍 四舍五入

  • isdigit(): 判定是否为整数

  • name[0]:字符串索引取值

  • join():拼接字符串 ‘*'.join(变量值)

  • 切片 也是 顾头不顾尾 [起始位置:想要的结束位置+1]

    word='hello_world'
    split_world=word[0:4+1]
    print(split_world)
    #hello
    
  • 切片+步长 word[0:4+1:2]

    word='hello_world'
    split_world=word[0:4+1:2]
    print(split_world)
    # 丛指定索引切到最后 --- [起始位置::]
    name_new_four = name[2::]
    print(name_new_four)
    #丛指定索引切到最后,加步长  --- [::步长]
    name_new_five = name[::2]
    print(name_new_five)
    
  • strip() : 去除首尾的空格

    name = '  asdasf   '
    print(name)
    print(name.strip())
    
  • 常用组合 input(' ').strip()

    name=input("请输入你的名字:>>>>").strip()
    print(name)
    
  • lstrip() 左空格 rstrip()右空格

    # 去除指定的字符
    name = '&&nancy&&'
    print(name.strip('&'))
    l -- left
    print(name.lstrip('&'))
    r -- right
    print(name.rstrip('&'))
    
  • 首尾字符判断

  • startswith():字符以什么开头

  • endswitch():字符以什么结尾

    # name = 'dream'
    #startswith : 判断当前字符以什么开头,返回布尔值
    print(name.startswith('w'))
    print(name.startswith('d'))
    # endswith : 判断当前字符以什么结尾,返回布尔值
    print(name.endswith('m'))
    print(name.endswith('d'))
    
  • replace():替换方法

    demo='I eat a hamburger'
    print(demo.replace('hamburger','hot dog'))
    
  • find():查找索引

  • index():索引值 ,索引第一个值

  • count():计数指定的元素个数

  • center():填充

    name = 'sadasfe'
    center : 填充 (基于你的字符串长度的宽度,填充的字符)
    #两侧填充,如果两侧个数不平衡的情况下就是,右多左少
    print(name.center(10, '-'))  # --dream---
    #ljust : 填充 (基于你的字符串长度的宽度,填充的字符)。
    填充指定字符在右侧
    print(name.ljust(10, '*'))  # dream*****
    #rjust : 填充 (基于你的字符串长度的宽度,填充的字符)。
    #填充指定字符在左侧
    print(name.rjust(10, '*'))  # *****dream
    #zfill : 填充 (基于你的字符串长度的宽度,填充的字符)。
    #使用 0 填充长度,填充在字符串左侧
    print(name.zfill(10))
    

列表类型(list)

  • list 可以强转字符串、元组、集合、字典

  • range():区间生成新列表

    print(list(range(1, 5)))  # [1, 2, 3, 4]
    
  • append():在结尾每次追加一个元素

    num_list = [1, 2, 3, 4, 5, 6]
    num_list.append(11) # 没有返回值 , 影响的是原来的列表
    print(num_list) # [1, 2, 3, 4, 5, 6, 11]
    
  • extend():可以添加多个元素到原来的末尾

    num_list = [1, 2, 3, 4, 5, 6]
    num_list.extend([99, 88, 77])
    print(num_list)
    
    
  • insert():按索引位置插值

    num_list = [1, 2, 3, 4, 5, 6]
    #insert : 按索引位置插值
    num_list.insert(1, 'b')
    print(num_list)
    
  • pop():去掉最后的元素 pop(1):去掉指定的元素

  • remove():删除指定位置元素

  • reverse():颠倒元素

    num_list = [1, 2, 3, 4, 5, 6]
    # reverse 颠倒元素,无返回值,影响到的是原来的列表
    num_list.reverse()
    print(num_list) #[6, 5, 4, 3, 2, 1]
    
  • sort():排序从小到大

  • #先排序,再反转
    num_list.sort(reverse=True)
    print(num_list)
    
  • 步长反转列表

    num_list=[1,3,4,5,7]
    print(num_list[::-1])
    

布尔类型(bool)

  • 强制转换类型

    • 为真的情况

      • 1.有值的数字类型
      • 2.有值的字符串/列表/字典/元组/集合
    • 为假的情况

      • 空的字符串/列表/元组/字典

        name = 'asda'
        print(bool(name), type(bool(name)))
        num_one = 0
        print(bool(num_one), type(bool(num_one)))  # False <class 'bool'>
        name = ''
        print(bool(name), type(bool(name)))
        

元组类型(tuple)

  • 定义:一个元素的时候要 加 ,

  • 【1】类型强转

    • tuple() 支持字符串/列表/字典/集合 强转成元组
    • 不支持数字类型
  • 【2】索引取值

    num_tuple = (1, 2, 3, 4)
    print(num_tuple[0])
    print(num_tuple[-1])
    num_tuple[0]=999
    
  • 【3】切片

    num_tuple = (1, 2, 3, 4)
    #顾头不顾尾 [起始索引:结束索引:步长]
    print(num_tuple[0:4:2])
    
  • 【4】计算长度 --- len

    num_tuple = (1, 2, 3, 4)
    print(len(num_tuple)) # 4
    

字典类型(dict)

  • 键值对定义

  • key : 建议使用不可变数类型 -- 字符串 / 数字类型
    value :可以是任意的数据类型

  • 【1】取值

    user_dict = {'name': "hope", "age": 18}
    第一种方法 : get
    根据键取值,能取到值就是对应的值
    print(user_dict.get('name'))
    如果取不到键对应的值,就是None
    print(user_dict.get('sex'))
    如果取不到,可以给他指定默认值,取不到的时候返回的就是默认值
    print(user_dict.get('sex', '男'))
    
  • 【2】计算长度

    user_dict = {'name': "dream", "age": 18}
    print(len(user_dict))  # 2
    
  • 【3】成员运算

    user_dict = {'name': "dream", "age": 18}
    # 直接使用 元素 + in + 字典 这个元素只能是判断当前元素是否是字典的键
    print("name" in user_dict)  # True
    print("dream" in user_dict)  # False
    
  • 【4】增加量

    user_dict = {'name': "hope", "age": 18}
    第一种方法 : 字典[key]=value
    如果没有这个键,那就将键值对增加到字典里面
    user_dict['sex'] = '男'
    如果存在这个键,就会直接被替换成新内容
    user_dict['name'] = 'Hope'
    print(user_dict)
    
    第二种方法: update(key=value)
    如果没有这个键,那就将键值对增加到字典里面
    user_dict.update(sex="男")
    如果存在这个键,就会直接被替换成新内容
    user_dict.update(name="男")
    print(user_dict)
    
  • 【5】删除

    user_dict = {'name': "hope", "age": 18}
    
    第一种方法 : del
    根据字典中的键删除指定的键值
    del user_dict["name"]
    print(user_dict)
    
    第二种方法 : pop
    必须制定参数 : 参数就是你想要删除的 key
    res = user_dict.pop('name')
    并且有返回值,返回值就是我们弹出来的 value
    print(user_dict)
    print(res)
    
    第三种方法 : clear
    清空字典内的所有内容
    user_dict.clear()
    print(user_dict)
    
    第四种方法 :popitem
    删除结尾的键值对
    user_dict = {'name': "hope", "age": 18, 1: 2, 2: 3, 3: 4, 4: 5}
    res = user_dict.popitem()
    print(user_dict)
    print(res)
    
  • 【6】键对/值对/键值对

    user_dict = {'name': "hope", "age": 18, 1: 2, 2: 3, 3: 4, 4: 5}
    print("name" in user_dict.keys())
    print("sex" in user_dict.keys())
    print(user_dict.keys())  # dict_keys(['name', 'age', 1, 2, 3, 4])
    print(user_dict.values())  # dict_values(['hope', 18, 2, 3, 4, 5])
    print(user_dict.items())  # dict_items([('name', 'hope'), ('age', 18), (1, 2), (2, 3), (3, 4), (4, 5)])
    for key, value in user_dict.items():
        print(key, value)
    
  • 【7】遍历循环

    user_dict = {'name': "hope", "age": 18, 1: 2, 2: 3, 3: 4, 4: 5}
    可以遍历字典,但是遍历字典遍历出来的是字典的键
    for i in user_dict:
    我们可以根据遍历的键去取值
    print(user_dict[i])
    
    for i in range(len(user_dict)):
    
    我们可以遍历字典的键值对,根据解压赋值
    for key, value in user_dict.items():
        print(key, value)
    
    
  • 【8】字典的排序

    user_dict = {'name': "hope", "age": 18}
    num_dict = {1: 2, 8: 3, 6: 4, 7: 5}
    字典类型没有 sort 方法
    user_dict.sort()
    
    现在学的只是针对字典的键排序
    如果是中文字符 : 按照第一个字母的 ASCII 吗大小排序
    res = sorted(user_dict.items())
    res = sorted(num_dict)
    print(res)
    

集合类型 --- set

  • 类型强转

    集合的特点就是无序性
    print(set('hope'))
    集合的另一大特性就是去重,去除重复的元素
    print(set('tonu'))
    
    字符串类型可以强转成集合类型
    字典也可以去重 , 一般我们只对字典的值去重
    因为字典的键一般情况下都是唯一的,不需要更改
    print(set({'name': "hope", "age": 18, "sex": 18}.values()))
    
    列表类型是可以转成集合类型
    num_list = [1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7]
    print(set(num_list))
    
    数字类型不可以
    print(set(1))
    
  • 添加元素

    num_set = {1, 2, 3, 4}
    
    添加方法一 :add
    num_set.add(5)
    print(num_set)
    
    添加方法二 : update
    可以更新多个元素到原来的集合中
    放的参数要是可迭代类型(字符串/列表/字典/元组)
    重复的元素会按照集合的特性进行去重
    不重复的元素就会被加进去
    num_set.update([1, 2, 9])
    num_set.update((1, 2, 9))
    num_set.update('hope')
    print(num_set)
    
  • 删除元素

    num_set = {1, 2, 3, 4, 5, 6}
    第一种方法 :remove
    只能按照集合中的值删除掉指定元素
    num_set.remove(3)
    没有指定元素的时候就会报错
    num_set.remove(7) # KeyError: 7
    print(num_set)
    
    第二种方法 : discard , 无返回值
    根据指定的值删除掉集合中指定的元素
    num_set.discard(5)
    # 如果删除的值在集合中不存在,那就会无反应,不会报错
    print(num_set.discard(7))
    print(num_set)
    
    第三种方法 :pop
    num_set = {5, 7, 'tony', True}
    print(num_set)
    把集合的第一个元素删除掉了
    res = num_set.pop()
    print(num_set)
    print(res)
    
  • 集合的运算方法

    并集/交集/差集
    set1 = {1, 2, 3}
    set2 = {3, 4, 5}
    # 并集
    union_set = set1.union(set2)
    # 交集
    union_set_one = set1.intersection(set2)
    # 差集
    union_set_two = set1.difference(set2)
    # 对称差集
    union_set_three = set1.symmetric_difference(set2)
    
    print(union_set)  # 输出: {1, 2, 3, 4, 5}
    print(union_set_one)  # 输出: {3}
    print(union_set_two)  # 输出: {1, 2}
    print(union_set_three)  # 输出: {1, 2, 3, 4, 5}
    

posted @ 2023-11-30 16:26  -半城烟雨  阅读(16)  评论(0编辑  收藏  举报