在Python 2.7.5代码中,我有以下数据结构:
一个简单的列表。。。
>>> data["parts"]
['com', 'google', 'www']
…还有一个元组列表。。。
>>> data["glue"]
[(1L, 'com'), (3L, 'google')]
当输入存在这些结构的代码时,我将始终知道data["parts"]
;data["glue"]
中的内容,充其量,将包含与data["parts"]
中的内容“匹配”元组-最坏情况下data["glue"]
可以为空。我需要知道的是胶水上缺少的部分。因此,对于上面的示例数据,我需要知道缺少“www”,这意味着它不在data["glue"]
中可能存在的任何元组中。
我第一次尝试通过各种for循环和if语句来生成一个缺少的片段的列表,但这充其量是非常混乱的。我试过列表理解,但失败了。也许列表理解也不是解决这个问题的方法。
非常感谢你的帮助,谢谢。
你可以在这里使用列表理解。也许最简单的事情就是创建一组所有索引,然后返回丢失的索引。请注意,即使零件数组中有重复项(例如,如果“www”在零件中出现两次),此答案也会给出所有缺少的零件。这不是集合理解的情况。
您可以使用set difference操作。
或者简单地使用list comprehensions:
set操作在speed部门胜出,运行操作10000000次,我们可以看到列表理解接管的时间比16s长:
相关问题 更多 >
编程相关推荐