Python for循环,打印相同的项目一次
我从url解析json数据,然后使用for循环打印我想要的项目Python for循环,打印相同的项目一次,python,for-loop,Python,For Loop,我从url解析json数据,然后使用for循环打印我想要的项目 import urllib.request import json response = urllib.request.urlopen('http://jsonurl.com') content = response.read() jdata = json.loads(content.decode('utf8')) jdata2 = jdata['available_channels'] for values in jdata2.v
import urllib.request
import json
response = urllib.request.urlopen('http://jsonurl.com')
content = response.read()
jdata = json.loads(content.decode('utf8'))
jdata2 = jdata['available_channels']
for values in jdata2.values():
live = values['live']
category = values['category_name']
if "1" in live:
print(category)
问题是,若几个项目具有相同的类别,那个么它会将它们打印多次
比如说
戏剧犯罪戏剧动作喜剧
我希望它只打印一次具有相同类别的项目:
戏剧、犯罪、喜剧、动作
我该怎么做呢?您可以使用一个集合来跟踪已打印的元素。范例-
jdata2 = jdata['available_channels']
seen_set = set()
for values in jdata2.values():
live = values['live']
category = values['category_name']
if "1" in live and category not in seen_set:
print(category)
seen_set.add(category)
您可以将感兴趣的类别存储到
集合中,该集合将删除重复项。然后打印:
wanted_categories = {v['category_name'] for v in jdata2.values() if "1" in v['live']}
print(wanted_categories)
假设你必须手工完成任务;您对每个项目的思考过程是什么?你能把它翻译成代码吗?对不起,没有注意到整个代码,看到了你的例子<代码>戏剧犯罪代码>并认为就是这样。set()不适用于不可损坏的对象