2024-04-20 14:21:10 发布
网友
有没有一种方法可以将一个列表中的所有元素(例如[4,3,2,1,4,3,2,1,4])与所有其他元素进行比较,并为每个元素返回它不同于其他元素的数量(例如,对于上面的列表[6,7,7,6,7,7,7])?然后我需要从这个列表中添加数字。在
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]之前创建{}比为列表中的每个元素i做{}要好,因为这意味着count()会多次执行相同的计数(每次遇到给定的元素,它都会计数)
[length - c[el] for el in li]
count()
顺便说一句,另一种写法:
你可以用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]
对于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]
在执行}比为列表中的每个元素i做{}要好,因为这意味着
[length - c[el] for el in li]
之前创建{count()
会多次执行相同的计数(每次遇到给定的元素,它都会计数)顺便说一句,另一种写法:
^{pr2}$你可以用
count()
方法得到类似的计数器。再减去总数。
用一个理解列表做一行。在
对于Python 2.7:
相关问题 更多 >
编程相关推荐