对于给定的元组元组,我想打印出每个元组第一个位置的唯一项,对于以下rows
,它们将是:python, PHP, html
这就是我的尝试:
rows = (('python', 'kivy'), ('python', 'tkinter'),("python","wxpython"),
('PHP', 'bootstrap'),('html', 'ajax'),('html', 'css'))
for row in rows:
if row[0] not in rows:
print(row[0])
答案 0 :(得分:2)
你不能把所有的第一件物品放进一套吗?然后打印套装?
my_set = set(item[0] for item in rows)
print(my_set) # {'python', 'html', 'PHP'}
答案 1 :(得分:2)
如果我理解正确,您只想打印第一个项目的每一个出现而不管重复,并且只打印一次?为此,您可以使用set
:
print(", ".join(set(e[0] for e in rows)))
# python, html, PHP
如果您需要保留订单,那就更难了 - 您必须使用临时设置来清除重复项:
seen = set() # temp set
print(", ".join(l for l, p in rows if l not in seen and not seen.add(l)))
# python, PHP, html
答案 2 :(得分:-1)
您可以使用列表(作为核对表)
rows = (('python', 'kivy'), ('python', 'tkinter'),("python","wxpython"),('PHP', 'bootstrap'),('html', 'ajax'),('html', 'css') )
lista=[]
for i in rows:
if i[0] not in lista:
lista.append(i[0])
print(i[0])
或
rows = (('python', 'kivy'), ('python', 'tkinter'),("python","wxpython"),('PHP', 'bootstrap'),('html', 'ajax'),('html', 'css') )
lista=[]
[lista.append(i[0]) for i in rows if i[0] not in lista]
for i in lista: print(i)