在2元组的元组中打印唯一的字符串

时间:2018-04-12 12:15:53

标签: python

对于给定的元组元组,我想打印出每个元组第一个位置的唯一项,对于以下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])

3 个答案:

答案 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)