检查该项目是否存在于列表中

时间:2021-05-06 16:39:49

标签: 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")

2 个答案:

答案 0 :(得分:5)

这比你想象的要容易:

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

这假设 A 和 B 都是列表,但您似乎有字典/集合。您可能需要先澄清这一点。如果你有集合,上面的解决方案应该仍然有效。

编辑:您现在说 A 和 B 都是来自两个单独 DataFrame 的列。在这种情况下,您可以这样做:

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

答案 1 :(得分:0)

我认为您正在寻找 in 关键字。分解一下:

<块引用>

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

if "sara" in B:
    print("yes")
<块引用>

我想用列表A检查列表B中的所有成员。

for b in B:
    if b in A:
        print("yes")
相关问题