Sha*_*dra 6 python string intersection list set
我已经通过查找两个列表的交集?,的两个列表字符串路口,获取两个列表的交集的蟒蛇。但是,我无法解决使用 Python 查找两个字符串列表之间的交集的问题。
我有两个变量。
A = [['11@N3'], ['23@N0'], ['62@N0'], ['99@N0'], ['47@N7']]
B  = [['23@N0'], ['12@N1']]
如何找到 '23@N0' 是 A 和 B 的一部分?
我尝试使用http://www.saltycrane.com/blog/2008/01/how-to-find-intersection-and-union-of/ 中提到的 intersect(a,b) 但是,当我尝试转换 A进入集合,它抛出一个错误:
File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list'
要将其转换为集合,我使用了TypeError: unhashable type: 'list' when using built-in set function中的方法,其中列表可以使用转换
result = sorted(set(map(tuple, A)), reverse=True)
成元组,然后元组可以转换成一个集合。但是,这会返回一个空集作为交集。
你能帮我找到路口吗?
您可以使用模块的flatten功能compiler.ast来展平您的子列表,然后像这样应用集合交集
from compiler.ast import flatten
A=[['11@N3'], ['23@N0'], ['62@N0'], ['99@N0'], ['47@N7']]
B=[['23@N0'], ['12@N1']]
a = flatten(A)
b = flatten(B)
common_elements = list(set(a).intersection(set(b)))
common_elements
['23@N0']
| 归档时间: | 
 | 
| 查看次数: | 19415 次 | 
| 最近记录: |