在Python中高效地搜索字符串列表中的字符串列表

2024-01-07

我有一个字符串列表和一个字符串列表。例如:

L1=[["cat","dog","apple"],["orange","green","red"]]
L2=["cat","red"]

如果 L1[i] 包含 L2 中的任何项目,我需要放置这些对(用于在图中创建边) 就像,在我的例子中,我需要这些对("cat","dog"),("cat,apple"),("red,orange"),("red","green")

我应该使用什么方法才能最有效。 (我的 L1 列表很大)


假设您的 L1 子列表中可能有多个“控制”项。

我会用set() http://docs.python.org/py3k/library/stdtypes.html#set-types-set-frozenset and itertools.product() http://docs.python.org/py3k/library/itertools.html#itertools.product:

from itertools import product

def generate_edges(iterable, control):
    edges = []
    control_set = set(control)
    for e in iterable:
        e_set = set(e)
        common = e_set & control_set
        to_pair = e_set - common
        edges.extend(product(to_pair, common))
    return edges

Example:

>>> L1 = [["cat","dog","apple"],
...       ["orange","green","red"],
...       ["hand","cat","red"]]
>>> L2 = ["cat","red"]
>>> generate_edges(L1, L2)
[('apple', 'cat'),
 ('dog', 'cat'),
 ('orange', 'red'),
 ('green', 'red'),
 ('hand', 'red'),
 ('hand', 'cat')]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中高效地搜索字符串列表中的字符串列表 的相关文章

  • 有没有一种方法可以将python对象直接存储在mongoDB中而不需要序列化它们

    我在某处读到过 您可以使用 BSON 将 python 对象 更具体地说是字典 作为二进制文件存储在 MongoDB 中 但是现在我找不到任何与此相关的文档 有人知道具体如何做到这一点吗 没有办法在不序列化的情况下将对象存储在文件 数据库
  • 从 SHAP 值中获取特征重要性

    我想要获得重要功能的数据框 通过下面的代码 我得到了 shap values 但我不确定这些值的含义是什么 在我的 df 中有 142 个特征和 67 个实验 但得到了一个带有 ca 的数组 2500 个值 explainer shap T
  • 上传时的 Google Drive API——这些额外的空行从何而来?

    总结一下该程序 我从我的 Google 云端硬盘下载一个文件 然后在本地计算机中打开并读取一个文件 file a txt 然后在我的计算机中打开另一个文件 file b txt 处于附加模式 并且在使用这个新的 file b 更新我的 Go
  • 嵌套字典中的 Django 模板

    我正在使用 Django 模板 并且遇到了嵌套字典的一个问题 Dict result dict type 0 file name abc count 0 type 1 file name xyz count 50 我的 HTML 文件中的模
  • 将 transaction.commit_manually() 升级到 Django > 1.6

    我继承了为 Django 1 4 编写的应用程序的一些代码 我们需要更新代码库以使用 Django 1 7 并最终更新到 1 8 作为下一个长期支持版本 在一些地方它使用旧风格 transaction commit manually and
  • TensorFlow:带有轴选项的 bincount

    在 TensorFlow 中 我可以使用 tf bincount 获取数组中每个元素的计数 x tf placeholder tf int32 None freq tf bincount x tf Session run freq feed
  • ctypes 错误:libdc1394 错误:无法初始化 libdc1394

    我正在尝试将程序编译为共享库 我可以使用 ctypes 在 Python 代码中使用该库 使用以下命令该库可以正常编译 g shared Wl soname mylib O3 o mylib so fPIC files pkg config
  • 在 python 3 中使用子进程

    我使用 subprocess 模块在 python 3 中运行 shell 命令 这是我的代码 import subprocess filename somename py in practical i m using a real fil
  • 从 Python 下载/安装 Windows 更新

    我正在编写一个脚本来自动安装 Windows 更新 我可以将其部署在多台计算机上 这样我就不必担心手动更新它们 我想用 Python 编写这个 但找不到任何关于如何完成此操作的信息 我需要知道如何搜索更新 下载更新并从 python 脚本安
  • 从sklearn PCA获取特征值和向量

    如何获取 PCA 应用程序的特征值和特征向量 from sklearn decomposition import PCA clf PCA 0 98 whiten True converse 98 variance X train clf f
  • Pyqt-如何因另一个组合框数据而更改组合框数据?

    我有一个表 有 4 列 这 4 列中的两列是关于功能的 一个是特征 另一个是子特征 在每一列中 所有单元格都有组合框 我可以在这些单元格中打开txt 我想 当我选择电影院作为功能时 我只想看到子功能组合框中的电影名称 而不是我的 数据 中的
  • PyTorch 给出 cuda 运行时错误

    我对我的代码做了一些小小的修改 以便它不使用 DataParallel and DistributedDataParallel 代码如下 import argparse import os import shutil import time
  • ImportError:运行 jupyter Notebook 时没有名为 IPython.paths 的模块?

    我通过以下方式安装了 jupyter usr local opt python bin python2 7 m pip install jupyter 这将安装 ipython 版本 4 1 2 但是 当我运行 jupyter Notebo
  • Python tkinter.filedialog Askfolder 干扰 clr

    我主要在 Spyder 中工作 构建需要弹出文件夹或文件浏览窗口的脚本 下面的代码在spyder中完美运行 在 Pycharm 中 askopenfilename工作良好 同时askdirectory什么都不做 卡住了 但是 如果在调试模式
  • `pyqt5'错误`元数据生成失败`

    我正在尝试安装pyqt5使用带有 M1 芯片和 Python 3 9 12 的 mac 操作系统 我怀疑M1芯片可能是原因 我收到一个错误metadata generation failed 最小工作示例 directly in the t
  • 在 Windows 上使用带有对数刻度的 matplotlib 时出现 Unicode 错误

    我正在使用 python 2 6 和 matplotlib 如果我运行 matplotlib 库页面中提供的示例 histogram demo py 它工作正常 我已经大大简化了这个脚本 import numpy as np import
  • 使用 NLP 进行地址分割

    我目前正在开发一个项目 该项目应识别地址的每个部分 例如来自 str Jack London 121 Corvallis ARAD ap 1603 973130 输出应如下所示 street name Jack London no 121
  • OSX 上的 locale.getlocale() 问题

    我需要获取系统区域设置来执行许多操作 最终我想使用 gettext 翻译我的应用程序 我打算在 Linux 和 OSX 上分发它 但我在 OSX Snow Leopard 上遇到了问题 python Python 2 5 2 r252 60
  • 通过 Web 界面执行 python 单元测试

    是否可以通过 Web 界面执行单元测试 如果可以 如何执行 EDIT 现在我想要结果 对于测试 我希望它们是自动化的 可能每次我对代码进行更改时 抱歉我忘了说得更清楚 EDIT 这个答案此时已经过时了 Use Jenkins https j
  • python 日志记录会刷新每个日志吗?

    当我使用标准模块将日志写入文件时logging 每个日志会分别刷新到磁盘吗 例如 下面的代码会将日志刷新 10 次吗 logging basicConfig level logging DEBUG filename debug log fo

随机推荐

  • 为什么内存警告为 4 MB 利用率和 320 MB 可用空间?

    我正在运行附加到 Xcode 5 1 1 的 iOS 7 1 的 iPhone 4 上进行测试 我不明白为什么当仪器显示我的应用程序仅使用几兆字节并且有大量可用内存时 我会收到内存警告甚至崩溃 请参阅附件 有任何想法吗 Update 正如我
  • 从 Excel 工作表获取数据

    如何将 Excel 工作表中的数据加载到 Django 应用程序中 我使用数据库 PosgreSQL 作为数据库 我想以编程方式执行此操作 客户希望每周将两个不同的列表加载到网站上 但他们不想在管理部分中执行此操作 他们只想从 Excel
  • 在此范围内未声明“pthread_setname_np”

    我在我的应用程序中创建了多个线程 我想为每个 pthread 分配一个名称 所以我使用pthread setname np它可以在 Ubuntu 上运行 但不能在 SUSE Linux 上运行 我用 google 搜索了一下 发现 np 的
  • Intellij IDEA 未检测到更改

    昨天 我重构了我的项目 并更改了包的布局 我将一些包移动到另一个包中 创建了新包等 但现在 当我尝试运行 JUnit 测试时 我得到了NoSuchMethodError重构后名称更改的方法 另外 当我更改方法中的其他代码时 IDEA 仍然运
  • 无法找到 com.facebook.katana.provider.platformprovider 和 com.facebook.wakizashi.provider.platformprovider 的提供商信息

    在我的 Android 应用程序中 我使用 FacebookDialog 我正在写下以下代码 在 Galaxy Note 3 Android 4 4 2 中 一切顺利 然而 在Experia SOL21 Android4 1 2 中却没有
  • 恢复 SQL Server 数据库之前等待连接关闭

    我有一个使用两个数据库的网络应用程序 DB1 用户执行 CRUD 创建 读取 更新 删除 操作 数据库 DB2 是位于另一台服务器上的只读数据库 我将其用于报告目的 我的 DB1 每小时都会保存事务日志 而在 DB2 上 我有一项工作需要在
  • 使用 RESTful URL 能给我带来什么?

    我一直在阅读有关 REST 的内容 并试图找出使用它的优势是什么 具体来说 REST 样式的 URL 相比于带有查询字符串的更典型的 GET 请求有什么优势 值得实现 为什么是这个网址 http www parts depot com pa
  • 减少 HTML

    我的网页中有以下 HTML Forum ul li Stack li li OverFlow li ul 正如您在下面看到的 我完美地列出了项目 但是之间存在固定的差距 ul and li 元素 有什么办法可以缩小这个差距吗 即附加屏幕中
  • 广度优先搜索:找不到路径,二维数组中到边界的最短路径

    我尝试编写一个 绕点 游戏 基本的游戏理念是 你必须在蓝点逃脱之前包围它 每放置一个障碍物 橙色点 蓝色点 玩家 就会向边界移动一步 如果你在他到达边界之前没有圈出蓝点 那么你就输了 游戏将重新开始 因此我必须做一个对 UIButton 的
  • 重命名二维数组每行中的键

    在如下所示的数组中 如何将 fee id 重命名为 id 输入数组 fee id gt 15 fee amount gt 308 5 year gt 2009 fee id gt 14 fee amount gt 308 5 year gt
  • 通过 Spring 在并行流中使用 JPA 对象

    我正在使用 JPA 开发 spring boot 应用程序 在代码中 我发现一个非常可疑的部分 它执行类似的操作 简化的示例 代码否则包含很多混乱 entityRepository findAll parallel The findAll
  • 从数组中删除 stdClass 对象

    我有一个如下所示的数组 数组 1 我需要从中删除 stdClass 如下面的数组所示 2 目前我正在使用 foreach 循环来执行此操作 是否有更好的方法可以在不循环的情况下执行此操作 阵列1号 array 3 0 gt object s
  • 语法“while IFS= read line”记录在哪里?

    为什么我看到的每个例子都有while IFS read line并不是while IFS read line 我以为name value command可能会设置一个局部变量 但是sentence hello echo sentence不起
  • 嗅探并显示 UTF-8 格式的 TCP 数据包

    我正在尝试使用 tcpdump 来显示在我的网络上流动的 tcp 数据包的内容 我有类似的东西 tcpdump i wlan0 l A A 选项将内容显示为 ASCII 文本 但我的文本似乎是 UTF 8 有没有办法使用 tcpdump 正
  • 有没有更简单的方法在Matlab中构造Mandelbrot集?

    下面显示的代码用于绘制曼德尔布罗特集 http en wikipedia org wiki Mandelbrot set 我认为我的代码对于构造有点冗余Matrix M In Python我知道有一种干净的方法可以做到这一点 M mande
  • 日期时间向上和向下舍入

    我一直在寻找合适的舍入机制 但我发现似乎没有什么正是我所需要的 我需要分别向上舍入和向下舍入 并且还需要在已经四舍五入的情况下考虑情况 我需要进行以下舍入 5 00 gt RoundDown gt 5 00 5 04 gt RoundDow
  • 使用 powerlaw 包对截止分布进行幂律拟合

    我目前正在尝试找到一种方法来计算 MLE 截止分布的幂律拟合 分布如下 正如您所看到的 我能够分别拟合整个分布 幂律拟合 和下限 exp fit 我没能弄清楚的是如何拟合分布的上限 例如 8 有什么办法可以做到这一点poweRlaw包还是任
  • 如何使用 Docker API Python 客户端构建镜像?

    我刚刚启动了 Docker Api 并探索了各个部分 但是我一直坚持使用 python 客户端使用 docker api 构建图像 实际上我无法理解如何为 docker 设置各种所需的参数客户端 images build 方法 请帮帮我 提
  • R:rvest - 不是正确的 UTF-8,表明编码?

    我正在尝试 Hadley Wickham 的 新 Rvest 套餐 我过去用过它 所以我希望一切都会顺利进行 但是 我一直看到这个错误 gt TV Audio Video Marca lt read html page source 1 e
  • 在Python中高效地搜索字符串列表中的字符串列表

    我有一个字符串列表和一个字符串列表 例如 L1 cat dog apple orange green red L2 cat red 如果 L1 i 包含 L2 中的任何项目 我需要放置这些对 用于在图中创建边 就像 在我的例子中 我需要这些