python-3.x - python for循环删除列表中重复的输出数据
问题描述
从 python for 循环中,我得到每次迭代的重复输出数据。我想要的是只在每次迭代中获取新数据。
我怎样才能从列表中删除重复的数据,只得到不重复的数据
被复制的数据是小时分钟和秒
对不起我的英语不好 。
import json
with open('activities.json') as f:
d = json.load(f)
keys = []
values = []
lijst = [[],[]]
def loop():
for y in d['activities']:
name = y['name']
lijst[0].append(name)
p = y['time_entries']
for e in p:
h = e['hours']
m = e['minutes']
s = e['seconds']
lijst[1].append(h)
lijst[1].append(m)
lijst[1].append(s)
print(lijst[1])
test = dict((k, lijst[1]) for k in [name])
loop()
输出第一个数据在第二个列表中重复第二个在第三个中重复,依此类推:
[1, 2, 11, 0, 0, 1, 0, 0, 4, 0, 0, 2, 0, 0, 1, 0, 0, 13, 0, 0, 1]
[1, 2, 11, 0, 0, 1, 0, 0, 4, 0, 0, 2, 0, 0, 1, 0, 0, 13, 0, 0, 1, 0, 0, 6, 0 , 0, 12, 0, 0, 10, 0, 0, 3]
[1, 2, 11, 0, 0, 1, 0, 0, 4, 0, 0, 2, 0, 0, 1, 0, 0, 13, 0, 0, 1, 0, 0, 6, 0 , 0, 12, 0, 0, 10, 0, 0, 3, 0, 0, 5, 0, 0, 1, 0, 0, 2, 0, 0, 4, 0, 0, 1, 0, 0 , 3, 0, 0, 8, 0, 0, 5, 0, 0, 9, 0, 0, 14]
解决方案
只需lijst
在每次迭代的乞求时重置:
import json
with open('activities.json') as f:
d = json.load(f)
keys = []
values = []
def loop():
for y in d['activities']:
lijst = [[],[]] #reset list
name = y['name']
lijst[0].append(name)
p = y['time_entries']
for e in p:
h = e['hours']
m = e['minutes']
s = e['seconds']
lijst[1].append(h)
lijst[1].append(m)
lijst[1].append(s)
print(lijst[1])
test = dict((k, lijst[1]) for k in [name])
loop()
推荐阅读
- javascript - 为什么 @change 或 @input 可以与自定义 v-model 组件一起使用?
- reactjs - 我需要访问对象消息中的数据:“{'data':{'status':'active'}}”。stringfy 访问时抛出错误
- python - STDIN 向命令行发送回复的问题
- javascript - 我如何根据财产对象的数量增加变量
- flutter - 如何在颤动中将标记从 API 动态放置到谷歌地图?
- c++ - 如何从 void click 函数中获取图像数据?
- php - 使用 updateOrCreate() 时出现重复条目
- python - Django 虚拟环境 - 没有名为“gunicorn”的模块
- symfony - 在 API 平台中:将非资源序列化为 JSON-LD 时如何缩写上下文?
- autocomplete - 浏览器自动完成建议隐藏 Bootstrap typeahaed 建议