def common_elements(list1, list2):
"""
Return a list containing the elements which are in both list1 and list2
>>> common_elements([1,2,3,4,5,6], [3,5,7,9])
[3, 5]
>>> common_elements(['this','this','n','that'],['this','not','that','that'])
['this', 'that']
"""
for element in list1:
if element in list2:
return list(element)
Run Code Online (Sandbox Code Playgroud)
到目前为止,但似乎无法让它工作!
有任何想法吗?
我正在玩python并且能够得到两个列表的交集:
result = set(a).intersection(b)
Run Code Online (Sandbox Code Playgroud)
现在,如果d是包含a和b第三个元素的列表c,是否有内置函数用于查找内部所有三个列表的交集d?所以,例如,
d = [[1,2,3,4], [2,3,4], [3,4,5,6,7]]
Run Code Online (Sandbox Code Playgroud)
那么结果应该是
[3,4]
Run Code Online (Sandbox Code Playgroud) 我有两个平面列表,其中一个包含重复值.例如,
array1 = [1,4,4,7,10,10,10,15,16,17,18,20]
array2 = [4,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)
我需要在array1中找到也在array2中的值,在array1中保留重复数据.期望的结果将是
result = [4,4,7,10,10,10]
Run Code Online (Sandbox Code Playgroud)
我想避免循环,因为实际数组将包含数百万的值.我尝试了各种设置和交叉组合,但是无法保留重复项.
任何帮助将不胜感激!
我想在不消除重复项的情况下找到两个列表之间的公共元素的数量。
例如:
输入:[1, 3, 3]&[4, 3, 3]
输出:2,因为公共元素是[3, 3]
输入:[1, 2, 3]&[4, 3, 3]
输出:1,因为公共元素是[3]
如果我要使用 Kotlin 集合intersect,结果是一个集合,这将阻止我计算重复值。
我发现(对于 Python)this,它以不同的方式处理重复项和this,这使我使用了这个实现,列表在哪里a和b在哪里:
val aCounts = a.groupingBy { it }.eachCount()
val bCounts = b.groupingBy { it }.eachCount()
var intersectionCount = 0;
for ((k, v) in aCounts) {
intersectionCount += Math.min(v, bCounts.getOrDefault(k, 0))
}
Run Code Online (Sandbox Code Playgroud)
然而,作为 Kotlin 的新手,我想知道是否有一种更“Kotlin-y”的方式来做到这一点——利用 Kotlin 的所有集合功能的东西?也许避免显式迭代的东西?