python - Python如何在列表X中搜索元素Y。元素Y本身就是一个列表,其元素可能与X中列出的顺序不同
问题描述
我有一个清单:
X = ['rgb','rg870','rg1200','rg1550']
我的第二个清单是:
Y = [870,r,g]
即使顺序不匹配,我也想在X
列表中搜索列表的组合并返回元素索引。Y
这应该返回1的索引。#至少我认为它作为第一个元素的位置1是0?
解决方案
试试这个:
import numpy as np
X = ['rgb','rg870','rg1200','rg1550']
Y = ['870','r','g']
result = np.where([sorted(''.join(Y))==sorted(x) for x in X])[0]
print(result)
代码说明:
''.join(Y)
使您从列表移动Y
到所有元素由空字符分隔的字符串。sorted(''.join(Y))
订购您新创建的字符串。sorted(x)
以相同的方式订购x
,这是通过X
列表理解迭代的一个元素。- 通过比较已排序的字符串,您可以确保 的所有字符
Y
都包含在相同编号的元素x
中,即使原始顺序不同。 - 使用
np.where(_)
搜索匹配发生的位置。由于通常np.where
用于矩阵,因此您只需选择第一个元素:np.where(_)[0]
. - 最后,您打印您的结果,这是匹配发生的位置列表。如果您确定只发生一个匹配,那么您可以简单地提取它
result = np.where(_)[0][0]
,从而获取结果列表中的第 0 个元素。
推荐阅读
- node.js - 猫鼬不保存模型
- sql - 从 PostgreSQL 中的嵌套 JSON 数组中获取所有值
- javascript - 根据 Javascript 和 Elementor 的选择更改href
- swift - 如何访问
使用 PocketSVG 的 SVG 资源的属性? - pandas - 将两个 Pandas 列转换为 yyyy-mm-dd HH:MM:SS
- javascript - 清理代码的最佳方法是什么?
- android - 获取主屏幕小部件元素的尺寸
- electron - 如何在电子中使用本地存储
- python - 第一篇关于 instagram 配置文件的 xpath 不起作用(python、selenium、chromedriver)
- julia - CartesianIndex 操作