Python如何在列表中进行搜索

标签 python

我有两个列表:

a= [['tea','apple',1,1],['coffee','apple',0,1],['cola','mango',1,1],['lemon','banana',0,0]]
b=[[ 'apple','0','1','1','3'],[ 'ring','0','1','1','3'],[ 'tennis','1','0','0','3'],[ 'mango','0','1','0','3']]

我正在尝试找出最好的方法:

  1. 列出项目
  2. 查找/搜索列表 a 中 a 和 b 之间的公共(public)元素(即列表 a 中的苹果和芒果)。
  3. 对于条目数,例如苹果在列表a中,我想添加整个 [ 'apple','0','1','1','3'] 到列表 b。如果列表 a 中有 2 个苹果条目,那么我想在 b 中添加两个 ['apple',...] block 。列表应类似于 :b=[[ 'apple ','0','1','1','3'],['苹果','0','1','1','3'],['芒果','0', '1','0','3']]

有没有更简单的方法来做到这一点?

最佳答案

对于 1,最好是使用 set():

a= [['tea','apple',1,1],
    ['coffee','apple',0,1],
    ['cola','mango',1,1],
    ['lemon','banana',0,0]]
b=[[ 'apple','0','1','1','3'],
   [ 'ring','0','1','1','3'],
   [ 'tennis','1','0','0','3'],
   [ 'mango','0','1','0','3']]

a_columns = zip(*a)
# union
a_set = set(a_columns[0]) | set(a_columns[1])
b_columns = zip(*b)
b_set = set(b_columns[0])
# intersection
common_names = a_set & b_set
print common_names

关于Python如何在列表中进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5678927/

相关文章:

python - tf.cond 变量。 tf.global_variables_initializer() 中的 FailedPreconditionError

python - Pythonista 如何在 App Store 限制下工作?

Python sys.argv 和 argparse

Python——使用指定的shell执行shell命令

python - 使用正则表达式捕获文本直到第一次出现某个字符

python - 扩展 ASCII 字符转换

python - Flask - 处理表单文件并上传到 AWS S3 而不保存到文件

python - Pandas:将 dbf 表转换为数据框

python - `type` 和 `tuple` 的子类

python - 如何计算相对值再平衡的if语句/错误: "The truth value of a Series is ambiguous"