首页 > 编程知识 正文

python中的set有什么用(python set转list)

时间:2023-05-03 23:25:09 阅读:93898 作者:3328

今天也遇到了一点工作上的小问题,但是克服了这个困难之后,对list和set有了更深入的了解~

关于list和set的特性,可以看我过去的文章。 pyhon的数据类型

背景:

deep_sort_yolov3在检测行人时,不仅可以记录行人的坐标,还可以记录行人的临时ID。 请参照下图。

我必须做的工作是在所有的框架中捕捉行人的id,放在他的坐标信息后面,同时将所有的id放在一个列表中,但列表的id分别只出现一次。 例如:

[ 1,2,3,4,5,6,7,8,9,…,234]

最后生成的样式将成为红色框中的形状。

由于每个id只出现一次的特性,自然想到了通过set来实现。 首先,将所有帧的所有append到一个列表中,将这个列表变为set,其所有id只有一个~~,一切顺利。 但事情没那么简单。 一个老鼠屎坏了一锅汤的破事又发生了。 因为我遍历了这个set中的元素,所以一个个放逗号,最后一个多一个,还是用检查这个元素是否是最后添加的元素的方法来解决。 如果是这样,就不加逗号,否则就加逗号,表现得有点混乱。 直接看代码吧:

以下代码与上面的屏幕快照的最后一行的文本写入相对应~

input_tags_set=set(#track_id ) track_id是所有id都被保存的数组(存在重复id ) )

tmp='帧速率' : '1','输入标签' : '

写入(tmp )

len _ input _ tags=len (输入标签集) #获取数组长度

边缘(len _输入_标签) :

if i==len_input_tags-1:如果当前元素是最后一个元素,则只写入元素

TMP=str(input_tags_set[I] ) () ) ) ) ) ) ) ) ) )但) ) ) )到) ) ) ) )但) ) ) ) ) ) )但) ) )而言之

写入(tmp )

else:#如果当前元素不是最后一个元素,则使用逗号写入该元素

tmp=str (输入标签集),'

写入(tmp )

tmp=',' suggestiontype':'track ',' SCD ' :假,'可视帧' : [ ],'标记颜色' : [

写入(tmp )

大家看到上面的代码观察到什么问题了吗?

最初,我没有注意到set无法通过索引访问,即input_tags_set[i]这样的写法错误,但程序直接报告了错误:

由于list可以通过索引进行访问,我想干脆把set放回list,不就可以通过索引进行访问了吗? 哈哈我真机智~~~

这个代码变成了这样:

输入标签集=集(轨迹id ) #用于所有实体

将#list设为set,去除重复值,将set返回list,按索引进行访问

输入标签列表=列表(输入标签集)

tmp='帧速率' : '1','输入标签' : '

写入(tmp )

len _ input _ tags=len (输入标签列表)

边缘(len _输入_标签) :

ifi==len输入标签- 1:

tmp=str (输入标签列表)

写入(tmp )

else:

tmp=str (输入标签列表),'

写入(tmp )

tmp=',' suggestiontype':'track ',' SCD ' :假,'可视帧' : [ ],'标记颜色' : [

写入(tmp )

欢迎来到“pyhon修炼之道”。 继续更新新鲜的python相关文章~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。