有没有一种方法可以比较列表中的所有元素(即[4,3,2,1,4,3,2,1,4]之一)到所有元素其他人,并返回,为每个元素,其他元素的数量是不同的(例如,[6,7,7,7,6,7,7,7,6]上面的列表)?然后我需要添加这个列表中的数字。将列表中的每个元素与所有其他元素进行比较
3
A
回答
2
您可以通过count()
方法获得类似的计数器。
然后减去总数。
与理解列表一行。
>>> l = [4, 3, 2, 1, 4, 3, 2, 1, 4]
>>> [ len(l)-l.count(i) for i in l ]
[6, 7, 7, 7, 6, 7, 7, 7, 6]
1
对于Python 2.7:
test = [4, 3, 2, 1, 4, 3, 2, 1, 4]
length = len(test)
print [length - test.count(x) for x in test]
3
li = [4, 3, 2, 1, 4, 3, 2, 1, 4]
from collections import Counter
c = Counter(li)
print c
length = len(li)
print [length - c[el] for el in li]
执行[length - c[el] for el in li]
比做count(i)
的名单我每个元素好转之前创建c
,因为这意味着count()
做同样的计数几次(每遇到一个给定的元素,它就会计算它)
顺便说一句,另一种写法:
map(lambda x: length-c[x] , li)
0
您可以使用sum
函数以及生成器表达式。
>>> l = [4, 3, 2, 1, 4, 3, 2, 1, 4]
>>> length = len(l)
>>> print sum(length - l.count(i) for i in l)
60
约发电机表达的好处是,你没有在内存中创建一个实际的名单,但像sum
功能仍然可以在它们之间迭代,并产生期望的结果。但是请注意,一旦迭代了一次生成器,就不能再次迭代它。
相关问题
- 1. 将列表中的元素与同一列表中的每个其他元素进行比较
- 2. 比较列表的元素对所有其他元素
- 3. Python - 将列表元素与“邻居”元素进行比较
- 4. 将列表中的元素与其邻居进行比较
- 5. 比较向量值:1个元素与其他所有其他
- 6. Java如何将一个数组的元素与同一个数组的所有其他元素进行比较
- 7. 比较列表中的每个元素
- 8. 比较数组一个元素在同一阵列中所有其他元素
- 9. 将CSV中的每个元素与使用python的其他元素进行比较
- 10. 将变量与数组中的每个元素进行比较
- 11. 尝试将HashSet元素与列表中的元素进行比较
- 12. 如何将所有其他元素的列表元素相乘?
- 13. 比较一个阵列中的所有元素与其他阵列
- 14. 将值与li元素进行比较
- 15. For循环将一个元素与数组中的所有其余元素进行比较
- 16. 将字符串与每个li元素进行比较
- 17. 将列表元素与谓词比较
- 18. 如何将数组中的每个元素与List中的每个元素进行比较?
- 19. 如何比较列表中的每个元素与另一个列表中的每个元素?
- 20. 如何将一个列表的元素与另一个python列表中的其他元素进行匹配?
- 21. 比较阵列中的所有元素与另一个阵列
- 22. 将数组列表与字符串元素进行比较android
- 23. 将子查询与元素列表进行比较
- 24. 比较两个列表元素与LINQ
- 25. 如何将列表元素与下一个元素进行比较以生成此元素?
- 26. Xquery,将数组中的元素与下一个元素进行比较
- 27. 比较两个元组列表中元素之间的元素
- 28. 如何将数组中的元素与if语句中的其他元素进行比较?
- 29. 将一个字符串与数组中的所有元素进行比较
- 30. 总结列表中的每一个其他元素/将每一个其他元素复合起来
你是什么意思'从这个列表中添加数字'?你想“总结”他们还是其他的东西? – Volatility 2013-02-17 00:08:51
我的意思是,从结果列表[6,7,7,7,6,7,7,7,6]我想要添加6 + 7 + 7 ....以产生元素的总和在名单 – user2079480 2013-02-17 00:19:50