Python 检查列表中是否存在该项

Python 检查列表中是否存在该项,python,arrays,for-loop,Python,Arrays,For Loop,我有两套像A={“sara”,“peter”,“ray”}和B={“ram”,“sara”,“gouri”}。我想选取列表B中的一个成员(例如“sara”)并与列表A核对,看看列表中是否存在该名称。如果此名称存在,则打印“是”。我想用列表A检查列表B中的所有成员。我有下面的代码,但它不起作用 for i in B: if B[i]==A: print("yes") 这比你想象的要容易: for i in B: if i in A: pri

我有两套像A={“sara”,“peter”,“ray”}和B={“ram”,“sara”,“gouri”}。我想选取列表B中的一个成员(例如“sara”)并与列表A核对,看看列表中是否存在该名称。如果此名称存在,则打印“是”。我想用列表A检查列表B中的所有成员。我有下面的代码,但它不起作用

for i in B:
   if B[i]==A:
      print("yes")

这比你想象的要容易:

for i in B:
   if i in A:
      print("yes")
这假设A和B都是列表,但您似乎有字典/集合。您可能需要首先澄清这一点。如果有集合,上述解决方案仍应有效

编辑:您现在说A和B都是来自两个独立数据帧的列。在这种情况下,您可以执行以下操作:

A={"sara", "peter", "ray"} 
B={"ram", "sara", "gouri"}

df1 = pd.DataFrame(A, columns=['Names'])
df2 = pd.DataFrame(B, columns=['Names'])

for index, row in df1.iterrows():
    if row['Names'] in df2.Names.tolist():
        print('yes')
编辑2:您现在说要将结果添加到df2中的新列中。使用:

A={"sara", "peter", "ray"} 
B={"ram", "sara", "gouri"}

df1 = pd.DataFrame(A, columns=['Names'])
df2 = pd.DataFrame(B, columns=['Names'])

df2['present_in_df1'] = np.where(df1['Names'] == df2['Names'], "yes", "no")
输出
df2

    Names   present_in_df1
0   gouri   no
1   ram     no
2   sara    yes

我想您正在关键字中查找
。分解如下:

(例如“sara”)并检查列表A,查看列表中是否存在此名称。如果此名称存在,则打印“是”

我想把名单B中的所有成员与名单A核对一下


你确定
{…}
是一个列表吗?对我来说,这看起来像一套。@iBug你说得对。我将编辑我的帖子。这能回答你的问题吗?它们是dataframe中的两列。一个数据框中的A列和另一个数据框中的B列。@Deli请参见编辑。@Sanderjuhh谢谢,但对所有数据框返回“是”。它应该只为“sara”返回“yes”。@Deli如果您从我上面的编辑中复制并运行代码,它将只为包含sara的行打印“yes”。yes但当我尝试将结果保存在df2的新列中时,它会为所有行返回“yes”。我写这个df2['result']=“yes”而不是打印('yes')
if "sara" in B:
    print("yes")
for b in B:
    if b in A:
        print("yes")