【问题标题】:Check if string present in same sub list python检查字符串是否存在于同一子列表python中
【发布时间】:2022-01-18 05:47:54
【问题描述】:

我有一个这样的列表。

l=[[['item1','item2'],[int1,int2]], [['item3','item4'],[int1,int2]]]

我想检查 item1 和 item2 是否相同..

目前,我正在采用一种方法,提取子列表中的第一个元素,从而计算出现次数。但我觉得这是一种漫长的方法。请问有什么简单的方法可以实现吗?

f=[e[0] for e in l[:1]]
print(f)

输出

['item1']

预期输出。 如果 item1 和 Item2 相同。

Both item1 & Item2 are same

如果 item1 和 Item2 不相同。

Both item1 & Item2 are not same

【问题讨论】:

  • 这里需要三重嵌套列表吗?因为l[1:] 在这里是空的,你的代码没有意义......
  • 需要比较item3和item4吗?

标签: python list


【解决方案1】:

如果您想比较列表中的所有“项目”,您可以循环列表并将第一项与第二项进行比较,如下所示:

l = [
    [['item2','item2'], [int,int]],
    [['item3','item4'], [int,int]]
]

for item in l:
    if item[0][0] == item[0][1]:
        print(f"Both {item[0][0]} & {item[0][1]} are same")
    else:
        print(f"Both {item[0][0]} & {item[0][1]} are not same")

#This code will print:
#Both item2 & item2 are same
#Both item3 & item4 are not same

【讨论】:

    【解决方案2】:

    一个非常简单的检查列表中的所有元素是否相同

    len(set(l)) == 1
    

    因此,如果您需要检查列表的每个元素是否包含相同的元素:

    result = [len(set(s)) == 1 for s in l[0]]
    

    这将返回一个布尔值列表,然后您可以将其转换为字符串或任何您想要的。例如:

    for b in result:
        print(f'Both item1 & item2 are {"" if b else "not "} the same')
    

    【讨论】:

    • 嘿,谢谢疯狂的物理学家,这是一个很好的解释。:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2013-04-29
    • 2021-07-07
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    相关资源
    最近更新 更多