python - 比较列表Python列表的所有元素
问题描述
这是我的清单的一部分。我的原始清单有 30 多个项目:
a = [[[1, 2, 3, 4, 5, 6, 7, 8, 9], [0.4, 3]], [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1.8, 1]]]
我需要比较我的所有项目a
。我的意思是,如果我的第一项的前 9 项等于另一项的前 9 项,则"1, 2, 3, 4, 5, 6, 7, 8, 9"
比较最后一项的 item[1]。
我将 item2 称为a
列表的其他项目
lista = []
for item in a:
print item
>>> [[1, 2, 3, 4, 5, 6, 7, 8, 9], [0.4, 3]]
>>> [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1.8, 1]]
if item[:1] == item2[:1]:
if item[9][1] <= item2[9][1]:
lista.append(item)
if item[9][1] > item2[9][1]:
lista.append(item2)
print lista
>>> [[1, 2, 3, 4, 5, 6, 7, 8, 9, [1.8, 1]]
解决方案
Here is a (kind-of) functional approach (I haven't tried this on Python 2.x):
from operator import itemgetter
def get_lista(a):
if a and len(set(map(' '.join, map(str, map(itemgetter(0), a))))) == 1:
return [a[0][0]] + [min(map(itemgetter(1), a), key=itemgetter(1))]
return []
a = [[[1, 2, 3, 4, 5, 6, 7, 8, 9], [0.4, 3]], [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1.8, 1]]]
lista = get_lista(a)
print(lista) # [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1.8, 1]]
get_lista(a)
will return an empty list, []
, if a
is empty or if the first sub-item of each of the items of a
do not match.
a = [[[1, 2, 3, 4, 5, 6, 7, 8, 9], [0.4, 3]], [[2, 3, 4, 5, 6, 7, 8, 9, 10], [1.8, 1]]]
print(get_lista(a)) # []
推荐阅读
- ruby - 比较哈希(减法)的元素 RUBY
- laravel-5 - vue router.push : TypeError: onComplete 不是函数
- java - 默认更改日历日期
- javascript - AngularJS 隔离指令监视所有双向数据绑定的变化
- wso2 - WSO2 API 管理器启动时出现“无法添加订阅”错误
- php - php:嵌套类结构的属性继承
- c# - 如何打开链接,填写数据然后单击没有浏览器的按钮?
- gmail - 如何从颤振中提取手机的主要电子邮件 ID 以自动填写注册表单?
- java - 提高 wicket 1.3 中页面的性能
- prometheus - 普罗米修斯上的多个目标