我有一个元组列表:
list = [(u'RHSA-2017:1270', u'Red Hat Enterprise Linux 6'), (u'RHSA-2017:1271', u'Red Hat Enterprise Linux 6'), (u'RHSA-2017:1270', u'Red Hat Enterprise Linux 7')]
我需要比较每个元组的index1元素,即
'Red Hat Enterprise Linux 6'
对于前2个元组是相同的
和元组3中的第一个索引元素,即:
'Red Hat Enterprise Linux 7'
我的目标是,一旦我检测到元组2中的元素索引1是重复的
从列表中删除此元组。
我已经尝试使用所需的元组创建一个新列表
空列表
new_list = []
for i in list:
rhel_ver = str(i[1])
if rhel_ver not in i:
new_list.append(i)
获取空列表。我怎样才能得到第一个包含的元组 rhel版本,即:
list = [(u'RHSA-2017:1270', u'Red Hat Enterprise Linux 6'), (u'RHSA-2017:1270', u'Red Hat Enterprise Linux 7')]
答案 0 :(得分:2)
您可以使用内置的any
制作新的唯一列表:
my_list = [(u'RHSA-2017:1270', u'Red Hat Enterprise Linux 6'), (u'RHSA-2017:1271', u'Red Hat Enterprise Linux 6'),
(u'RHSA-2017:1270', u'Red Hat Enterprise Linux 7')]
unique_list = []
for element in my_list:
if not any(tup[1] == element[1] for tup in unique_list):
unique_list.append(element)
print(unique_list)
答案 1 :(得分:2)
您可以跟踪extensions [ rnd ]
globals [ pcolor-list ]
to setup
ca
reset-ticks
ask patches [
set pcolor random 10 + 50
]
end
to go
check
tick
end
to check
set pcolor-list []
repeat 10 [
ask rnd:weighted-one-of patches [ pcolor ] [
set pcolor-list lput pcolor pcolor-list
]
]
end
中已经看过的元素:
library(RNetLogo)
nl.path <- "C:/test_rnetlogo/app"
model.path <- "C:/test_rnetlogo/test_rnd.nlogo"
NLStart(nl.path, gui = FALSE, nl.jarname = "netlogo-6.0.1.jar")
NLLoadModel(model.path)
NLCommand("setup")
NLCommand("Go")
test <- NLReport("pcolor-list")
> print(test)
[1] 53 53 50 57 50 53 50 58 58 51
答案 2 :(得分:0)
您可以使用python OrderedDict创建一个新列表,将索引1(元组中的第二个元素)设置为键。这将删除任何重复。然后,您可以从Ordered Dict生成一个新列表。 python 2.7
import collections
tagPairs=collections.OrderedDict()
lst = [(u'RHSA-2017:1270', u'Red Hat Enterprise Linux 6'),
(u'RHSA-2017:1271', u'Red Hat Enterprise Linux 6'),
(u'RHSA-2017:1270', u'Red Hat Enterprise Linux 7')]
for i,v in lst:
tagPairs[v]=i
unique_list=[]
for k,j in tagPairs.items():
unique_list.append((j,k))
print unique_list
import collections
tagPairs=collections.OrderedDict()
lst = [(u'RHSA-2017:1270', u'Red Hat Enterprise Linux 6'),
(u'RHSA-2017:1271', u'Red Hat Enterprise Linux 6'),
(u'RHSA-2017:1270', u'Red Hat Enterprise Linux 7')]
for i,v in lst:
tagPairs[v]=i
unique_list=[]
for k,j in tagPairs.items():
unique_list.append((j,k))
print unique_list