zoukankan      html  css  js  c++  java
  • Python四种常用容器类型

    一、字符串容器(string)

    复制代码
    1.#for循环遍历字符串
    
    My_str = 'hi,你好'
    
    for v in My_str:
    
    print(v,end='')    
    输出:
    复制代码
    复制代码
    2.#replace替换函数
    my_string = '寻寻觅觅,冷冷清清,柒柒惨惨戚戚'
    print(my_string)        #还未替换前
    print(my_string.replace('柒','凄',2)) #替换后重新生成一个字符串,2代表替换两次

    输出结果:

    复制代码

    字符串(string)特点:

    1、字符串一旦定义不允许修改(赋值)

    2、字符串容器里面的元素都是字符类型

    字符串切片案例:(切片语法:左闭右开)

    复制代码
    #-----------------------------方法一(find)
    email = 'chenroubao@IT.com'
    #如果查找到,返回子串第一次出现的位置;找不到就返回-1
    position = email.find('@')
    if position == -1:
     print('不存在@!')
    else:
     left = email[:position]
     right = email[position+1:]
     print('左边是:',left)
     print('右边是:',right)
     print('逆序输出:',email[::-1])#-------逆序输出
    输出结果:
    复制代码
    复制代码
    #--------------方法二(split)
    email = 'chenroubao@IT.com'
    count = email.count('@')
    if count == 1:
     result = email.split('@')
     print('左边是:',result[0])
     print('右边是:',result[1])
    else:
     print('邮箱不合法!')
    输出结果:
    复制代码

    二、列表容器(list)

    复制代码
     1 #插入删除函数
     2 my_list = []
     3 
     4 #append在尾部插入元素
     5 my_list.append(1)
     6 my_list.append(2)
     7 my_list.append(3)
     8 my_list.append(4)
     9 print(my_list)                #[1,2,3,4]
    10 #insert 在指定位置插入
    11 my_list.insert(2,1)            
    12 print(my_list)                #[1,2,1,3,4]
    13 #pop 用于位置删除,默认删除最后一个元素
    14 my_list.pop()                
    15 print(my_list)                #[1,2,1,3]
    16 my_list.pop(3)                
    17 print(my_list)                #[1,2,1]
    18 #remove 根据值删除,默认删除第一个出现的值
    19 my_list.remove(1)             
    20 print(my_list)                #[2,1]
    21 #clear 清空
    22 my_list.clear()
    23 print('列表长度:',len(my_list))     #列表长度:0
    复制代码
     1 #排序函数
     2 #产生10个随机数
     3 import random
     4 list = []
     5 i = 0
     6 while i < 10:
     7  random_shu = random.randint(1,10)
     8  list.append(random_shu)
     9  i += 1
    10 print(list)
    11 #sort排序 默认升序 (设置reverse=True降序)
    12 list.sort()
    13 print(list)
    14 #reverse逆序输出
    15 list.reverse()
    16 print(list)
    复制代码
    输出结果:
    复制代码
    #extend扩大 用于两个list合并
    list = [1,2]
    list2 = [3,4]
    list.extend(list2)
    print(list)           #输出:[1,2,3,4]

    列表(list)优缺点:

    优点:

    支持位置删除(尾部删除、指定位置删除)和值删除

    尾部插入和删除效率更高,原因是:不需要移动元素

    指定位置插入和删除效率较低,原因是:需要移动元素,元素越多,效率越低

    缺点:

    查找效率低(列表是序列式存储的,假如查找的元素位置在最后,那相当于把整个列表都查了一遍才找的出来,所以效率低。)

    但是指定位置的查找效率是高的。

    三、元祖(tuple)

    #元祖的定义
    tuple = ((1,),)
    print(tuple)        #输出:  ((1,))

    元祖(tuple)特点:

    不支持修改,只支持遍历、查找

    元祖内只有一个元素时,加,(逗号)

    元祖比列表更节省空间

    元祖是序列式容器,支持索引、切片操作

    四、字典(dict)

    复制代码
    def test():
      #字典定义
      my_dict = {'name':'obama','age':18,'sex':'男'}
      print(my_dict.get('name1','key不存在,这里是默认值'))
    #key不存在,就添加元素;存在就是修改元素
      my_dict['score'] = 100
      print(my_dict)
    test()

    输出结果:
    复制代码
    复制代码
     1 #字典遍历
     2 my_dict = {'name':'obama','age':18,'sex':'男'}
     3 for val in my_dict:
     4  print(val)        #输出键,没有值
     5 key = my_dict.keys()
     6 print(list(key))      #按列表输出键
     7 val = my_dict.values()  
     8 print(list(val))      #按列表输出值
     9 key_value = my_dict.items()
    10 print(list(key_value))   #输出键值对
    11 for keyval in key_value:
    12  print('key:',keyval[0],'value:',keyval[1])
    输出结果:
    复制代码
    复制代码
    1 # while循环遍历字典
    2 my_dict = {'name':'obama','age':18,'sex':'男'}
    3 list = list(my_dict.items())
    4 i = 0
    5 while i < len(list):
    6   print('key:',list[i][0],'value:',list[i][1])
    7   i += 1
    输出结果:
    复制代码

    字典(dict)特点:

    字典是非序列式容器,不支持索引、切片

    查找效率高,空间占用较大。以空间换时间

  • 相关阅读:
    PBR(基于物理的渲染)学习笔记
    iOS应用千万级架构开篇
    iOS应用千万级架构:性能优化与卡顿监控
    iOS应用千万级架构:自动埋点与曝光
    iOS应用千万级架构:存储持久化
    iOS应用千万级架构:MVVM框架
    Spring Boot入门系列(十七)整合Mybatis,创建自定义mapper 实现多表关联查询!
    Spring Boot入门系列(十六)使用pagehelper实现分页功能
    Spring Boot入门系列(十五)Spring Boot 开发环境热部署
    说迷茫
  • 原文地址:https://www.cnblogs.com/zhukaijian/p/15187992.html
Copyright © 2011-2022 走看看