内置数据结构(list)

列表、元组、字符串、字典和集合是python内置的数据结构,也可以叫内置容器。前3个是线性结构,线性结构可以切片操作、解包和封包操作。

dir()方法可以查看对象拥有哪些属性和方法。

help()方法可以查看一个方法的原形。

len()方法可以返回列表、元组中元素的个数。

id()方法查看一个变量的id值。

一、列表(list)

lt = list()  #定义一个空列表

lt = [] #同上

lt = [1, 2, 3, 4, 5]

1.索引操作

列表的索引是从0开始。负数索引表示从后往前,由-1开始,-1表示最后一个元素。如果索引超出范围,将抛出一个IndexError异常。

lt[0]  #结果为:1

lt[-2] #结果为:4

lt[9]

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    lt[9]
IndexError: list index out of range

  #修改指定索引的值,当超出索引范围时,抛出一个IndexError异常。

lt[0] = 6   #lt结果为:  [6, 2, 3, 4, 5]

lt[9]

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    lt[9]
IndexError: list index out of range

二、list的属性和方法

1.append方法是向列表追加一个元素,返回值是None

lt.append(8)  

2.insert方法是在指定索引处插入一个元素,如果指定的正索引值超过索引范围就在末尾追加元素。如果指定的负索引在索引范围就从右向左的对应位置,但指定的负索引不在索引范围就在列表的0索引位置插入一个元素。

lt = [1, 2, 3, 4, 5]
lt.insert(40,33)
lt.insert(-2,88)
lt.insert(-40,333)

lt列表的结果为:[333, 1, 2, 3, 4, 88, 5, 33]

  3.extend方法是把一个列表追加到另外一个列表中

lt.extend([44, 55, 66])

4.pop方法是在列表最后删除一个元素,也可以指定索引来删除元素,并返回删除的元素。索引默认为-1,如果index超出索引范围会出了IndexError异常。

lt.pop()

lt.pop(33)

Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    lt.pop(33)
IndexError: pop index out of range

  5.remove方法是删除最近一个相对应的值,如果指定的值不在列表中就抛出一个ValueError异常。

lt.remove(2)

lt.remove(98)

Traceback (most recent call last):
  File "<pyshell#34>", line 1, in <module>
    lt.remove(98)
ValueError: list.remove(x): x not in list

  6.clear方法是清除列表中的所有元素,变成一个空列表。

lt.clear()

7.index方法通过值查找最近的一个索引,也可以指定查找范围。如果指定的索引不在索引范围内就抛出一个ValueErro异常。

lt.index(44)

lt.index(90)

Traceback (most recent call last):
  File "<pyshell#36>", line 1, in <module>
    lt.index(90)
ValueError: 90 is not in list

  8.count方法通过值统计在列表中出现过多少次。如果不存在就返回0

lt.count(2)

9.sort方法对列表进行排序操作。也可以指定参数reverse和key,如果reverse=True时为倒排序。

lt.sort()

10.reverse()方法把一个列表倒排。

lt.reverse()

11.copy方法是复制一个新列表。

lt2 = lt.copy()

三、列表的切片操作

 

lt = list(range(20))

print(lt[0:8])
#结果:[0, 1, 2, 3, 4, 5, 6, 7]

print(lt[-8:-2])
#结果:[12, 13, 14, 15, 16, 17]

 print(lt[-8:-5])
#结果:[12, 13, 14]

#注意 切片操作总是从左向右,所以左边要小于右边,反知得到一个空列表。左边超出索引范围从0开始,右边超出索引范围取到
列表最后一个元素。

 

print(lt[:12])
#结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

print(lt[2:])
#结果:[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

 

print(lt[::2])
#结果:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

 print(lt[::-1])   

#结果:[19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
#可以为切片设置步长。当步长为负数时,从后往前,此时应该左边大于右边,否则返回一个空列表。
lt = list(range(10))

lt[3:5] = ['a', 'b']
print(lt)
#结果:[0, 1, 2, 'a', 'b', 5, 6, 7, 8, 9]

lt[2:4] = 'x'
print(lt)
#结果:[0, 1, 'x', 'b', 5, 6, 7, 8, 9]

lt[2:4] = ['a', 'b', 'c', 'd']
print(lt)
#结果:[0, 1, 'a', 'b', 'c', 'd', 5, 6, 7, 8, 9]

#对于切片赋值时,会替换切片原来的元素。如果不连续的切片赋值时,需要有相同个数的值。

四、解包和封包

1.解包

把一个列表或者元组,同时赋值给多个变量时,称为解包。

如果等于号左边的变量个数少于右边的个数时,需要使用带“*”的变量。如果不需要一个值时可以用一个下划线来代替一个变量。如果不需要多于的值时,可以使用带“_"的星号。

x = 1
y = 2
x, y = (y, x)
print(x, y)
#结果:2 1

 lt = list(range(20))
 x, *y = lt
 print(x,y)

#结果:0 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

 x, *_, y = lt
 print(x, y)

#结果:0 19

 lt = [1,[2,3,4,5],6]
 a,(b,*_,c),d=lt
 print(a,b,c,d)

#结果:1 2 5 6
#只要等于号左边和右边的结构相同就能赋值成功。

2.封包

把多个变量,同时赋值给一个变量构建成一个元组时,称为封包。

t = x , y
print(type(t))
#结果:<class 'tuple'>

  

转载于:https://www.cnblogs.com/orna/p/8276973.html

一、数据采集层:多源人脸数据获取 该层负责从不同设备 / 渠道采集人脸原始数据,为后续模型训练与识别提供基础样本,核心功能包括: 1. 多设备适配采集 实时摄像头采集: 调用计算机内置摄像头(或外接 USB 摄像头),通过OpenCV的VideoCapture接口实时捕获视频流,支持手动触发 “拍照”(按指定快捷键如Space)或自动定时采集(如每 2 秒采集 1 张),采集时自动框选人脸区域(通过Haar级联分类器初步定位),确保样本聚焦人脸。 支持采集参数配置:可设置采集分辨率(如 640×480、1280×720)、图像格式(JPG/PNG)、单用户采集数量(如默认采集 20 张,确保样本多样性),采集过程中实时显示 “已采集数量 / 目标数量”,避免样本不足。 本地图像 / 视频导入: 支持批量导入本地人脸图像文件(支持 JPG、PNG、BMP 格式),自动过滤非图像文件;导入视频文件(MP4、AVI 格式)时,可按 “固定帧间隔”(如每 10 帧提取 1 张图像)或 “手动选择帧” 提取人脸样本,适用于无实时摄像头场景。 数据集对接: 支持接入公开人脸数据集(如 LFW、ORL),通过预设脚本自动读取数据集目录结构(按 “用户 ID - 样本图像” 分类),快速构建训练样本库,无需手动采集,降低系统开发与测试成本。 2. 采集过程辅助功能 人脸有效性校验:采集时通过OpenCV的Haar级联分类器(或MTCNN轻量级模型)实时检测图像中是否包含人脸,若未检测到人脸(如遮挡、侧脸角度过大),则弹窗提示 “未识别到人脸,请调整姿态”,避免无效样本存入。 样本标签管理:采集时需为每个样本绑定 “用户标签”(如姓名、ID 号),支持手动输入标签或从 Excel 名单批量导入标签(按 “标签 - 采集数量” 对应),采集完成后自动按 “标签 - 序号” 命名文件(如 “张三
(1)舆情分析师端(Web 管理平台) 监测配置中心: 关键词管理:支持设置 “核心关键词(如‘某品牌’)+ 扩展关键词(如别名、竞品名)”,可配置 “正向词(如‘好评’)、负向词(如‘投诉’)、停用词(如无意义虚词)”,支持按 “精确匹配 / 模糊匹配” 规则监测。 监测范围设置:选择需覆盖的平台(如微博、知乎、新闻网站、短视频评论区),设置数据采集频率(如重大事件按 5 分钟 / 次,日常监测按 1 小时 / 次)。 舆情分析工作台: 实时舆情流:按时间倒序展示匹配关键词的信息(含来源、发布时间、内容、传播量),支持按 “情感倾向、平台类型、热度” 筛选,点击单条信息可查看完整上下文及评论。 多维度分析:提供 “情感分布、话题聚类、传播路径、用户画像” 等分析结果,支持生成 “某事件 24 小时舆情变化” 专题看板。 (2)企业管理员端(Web + 移动端) 全景监控看板: 核心指标卡片:展示 “今日新增舆情量(1256 条)、负面舆情占比(8.3%)、重点预警事件(2 件)、舆情热度指数(78/100)”,数据每 30 分钟自动更新。 趋势可视化:近 7 天舆情热度折线图、情感占比饼图、主要传播平台分布柱状图,支持点击 “异常点” 查看详细原因(如 “10 月 15 日负面激增因某投诉视频出圈”)。 移动监测功能: 预警推送:负面舆情超阈值时,小程序实时推送通知(含 “事件描述、影响范围、建议响应时间”),支持一键标记 “已处理”。 简报查看:接收每日 / 每周舆情简报(精简版),包含 “核心结论、风险点、用户建议”,适配手机阅读场景。 (3)系统运维员端(配置后台) 爬虫任务监控: 任务状态面板:展示各平台爬虫的 “运行状态(正常 / 暂停 / 异常)、今日采集量、平均响应时间”,异常时(如 IP 被封)自动告警并尝试切换代理 IP。 资源调度:根据舆情热度动态调整
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值