Python 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

我从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.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()不适用于不可损坏的对象