【发布时间】:2017-04-02 13:36:35
【问题描述】:
从字符串和数组的两个列表中创建第三个列表时遇到问题:
d = [('O', array([ 0.034 , -0.31900001, 1.18900001], dtype=float32)),
('H', array([ 0.29499999, 4.56899977, 1.44500005], dtype=float32)),
('O', array([ 0.30500001, 7.00199986, 1.88199997], dtype=float32)),
('H', array([ 0.215 , 11.07900047, 1.52199996], dtype=float32)),
('O', array([ 0.23999999, 13.68999958, 1.99199998], dtype=float32)),
...]
v = [('H', array([ 0.64899999, 1.29700005, 3.33400011], dtype=float32)),
('O', array([-0.131 , 3.41700006, 3.31900001], dtype=float32)),
('H', array([ 0.764 , 7.69399977, 3.61800003], dtype=float32)),
('O', array([ 0.15000001, 10.2130003 , 3.273 ], dtype=float32)),
('H', array([ 1.01499999, 14.08399963, 3.7420001 ], dtype=float32)),
...]
我需要的结果应该包含两个列表中的所有“H”以及这些 H 的所有坐标(定期)
result = [('H', array([ 0.29499999, 4.56899977, 1.44500005], dtype=float32)),
('H', array([ 0.64899999, 1.29700005, 3.33400011], dtype=float32)),
('H', array([ 0.215 , 11.07900047, 1.52199996], dtype=float32)),
('H', array([ 0.764 , 7.69399977, 3.61800003], dtype=float32)),
('H', array([ 1.01499999, 14.08399963, 3.7420001 ], dtype=float32)),
...]
正在尝试不同的选项,但每当我尝试循环使用时都会遇到不可哈希的类型:'numpy.ndarray':
result=list(set(d[0][1:]) & set(v[0][1:]))
非常感谢您的想法和建议。
【问题讨论】:
标签: python arrays list compare