Python中列表列表中的唯一值

Python中列表列表中的唯一值,python,python-2.7,Python,Python 2.7,我有以下python列表: [ u'aaaaa', [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'], u'zzzzzz', [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'], [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time']

我有以下python列表:

[
    u'aaaaa', 
    [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'], 
    u'zzzzzz', 
    [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'], 
    [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], 
    [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time'], 
    u'bbbbb', 
    [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'], 
    [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], 
    [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time'], 
    [1, 7, u'develop', 20.0, 15.0, 5.0, 'On Going']
]
[
    [u'aaaaa', [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time']], 
    [u'zzzzzz', [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time']], 
    [u'bbbbb', [1, 7, u'develop', 20.0, 15.0, 5.0, 'On Going']]
]
我想要python中的以下输出:

[
    u'aaaaa', 
    [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'], 
    u'zzzzzz', 
    [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'], 
    [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], 
    [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time'], 
    u'bbbbb', 
    [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'], 
    [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], 
    [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time'], 
    [1, 7, u'develop', 20.0, 15.0, 5.0, 'On Going']
]
[
    [u'aaaaa', [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time']], 
    [u'zzzzzz', [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time']], 
    [u'bbbbb', [1, 7, u'develop', 20.0, 15.0, 5.0, 'On Going']]
]

请告诉我如何使用python管理订单。

如果您希望列表中的所有唯一值:

mylist = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
mylist = [list(x) for x in set(tuple(x) for x in testdata)]
print myset # This is now a set containing all unique values.
# This will not maintain the order of the items
1) 我真的认为你应该看看Python字典。考虑到您想要的输出类型,它们会更有意义

2) 在本例中,如果我理解正确,您希望将包含字符串或列表元素的列表转换为列表列表。这个列表应该有一个起始元素作为字符串,其余元素作为主列表中的以下列表项,直到您点击下一个字符串为止。(至少从您的示例来看是这样的)


以下内容将为您提供所需的输出。它使用字典来发现重复条目

entries = [
    u'aaaaa', [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'],
    u'zzzzzz', [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'], 
    [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], 
    [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time'],
    u'bbbbb', 
    [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time'], 
    [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], 
    [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time'], 
    [1, 7, u'develop', 20.0, 15.0, 5.0, 'On Going']]

d = {}
output = []
entry = []

for item in entries:
    if type(item) == type([]):
        t = tuple(item)
        if t not in d:
            d[t] = 0
            entry.append(item)
    else:
        if len(entry):
            output.append(entry)

        entry = [item]

output.append(entry)

print output
这将提供以下输出:

[[u'aaaaa', [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time']], [u'zzzzzz', [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time']], [u'bbbbb', [1, 7, u'develop', 20.0, 15.0, 5.0, 'On Going']]]
[[u'aaaaa', [[1, 6, u'testing', 20.0, 18.0, 2.0, 'In time']]], [u'zzzzzz', [[1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going']], [[2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time']]], [u'bbbbb', [[1, 7, u'develop', 20.0, 15.0, 5.0, 'On Going']]]]
使用Python2.7进行测试

更新:如果需要列表格式,只需将
[]
添加到上述脚本中的
,如下所示:

entry.append([item])
这将产生以下输出:

[[u'aaaaa', [1, 6, u'testing', 20.0, 18.0, 2.0, 'In time']], [u'zzzzzz', [1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going'], [2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time']], [u'bbbbb', [1, 7, u'develop', 20.0, 15.0, 5.0, 'On Going']]]
[[u'aaaaa', [[1, 6, u'testing', 20.0, 18.0, 2.0, 'In time']]], [u'zzzzzz', [[1, 1, u'xyz ', 30.0, 25.0, 5.0, 'On Going']], [[2, 1, u'abcd', 10.0, 8.0, 2.0, 'In time']]], [u'bbbbb', [[1, 7, u'develop', 20.0, 15.0, 5.0, 'On Going']]]]

如果你说的是删除重复值,但保留顺序,那么这应该会对你有所帮助:它起作用,但这里有一些变化,我跟随这个链接后得到的是:u'zzzzzz',[1,1,u'xyz',30.0,25.0,5.0,'On Going'],[2,1,u'abcd',10.0,8.0,2.0,'In time'],但我希望每个元素都像这样成对出现[u'zzzzzzzzzzzzzz',[1,1,u'xyz',30.0,25.0,5.0,“持续”],[2,1,u'abcd',10.0,8.0,2.0,“及时”],[u'bbbbbbb',[1,7,u'development',20.0,15.0,5.0,“持续”]请告诉我它是如何可能的:这只适用于散列项目,这里的内部元素是列表,您不能有列表内设置。更新为转换为列表,并确定列表元素。尝试此代码后,python显示错误“列表索引超出范围”我想在其中创建一对,第一个是name,第二个是pythonChange第3行中的一个或多个列表,改为
type(u“”)
,因为您只使用unicodeOr,
isinstance(elem,basestring)
如果您同时使用字符串和unicode stringshello Martin,如果可能,请建议我如何实现:我希望列表格式中的元素内部列表如下所示,因为在打印RML报告时,其他格式无法正常工作,因此请建议我如何实现:[[u'aaaaa',[[1,6,u'testing',20.0,18.0,2.0,'In time']],[u'Administrator',[[1,1,u'xyz',30.0,25.0,5.0,'On Going'],[2,1,u'abcd',10.0,8.0,2.0,'In time']],[u'bbbbbbbbb',[[1,7,u'developer',20.0,15.0,5.0,'On Going']]您只需要添加
[]
到其中一个附录。我已经更新了答案。我得到了你的答案,但很抱歉,我不需要输出。你的建议适用于单个元素列表,但在该管理中有两个元素列表,因此我希望如下:[u'Administrator',[[1,1,u'xyz',30.0,25.0,5.0',On Going'],[2,1,u'abcd',10.0,8.0,2.0,'In time'],]],第一个和最后一个在您的建议后正常工作,但是关于这一个,请建议我如何可能。谢谢这正是代码产生的,我只是逐项显示。如果您只打印
输出,您将看到。我做了简单的更改。