python列表判断数字是否在列表中_Python检查二维列表是否包含另一个列表的数字...

我想知道列表中是否包含列表中的数字,但是我没有尝试按照自己的意愿进行操作.例如,如果list2 = [[1,2,3],[4,5,6]]中的列表的列表在list1 = [4、5、6、7]中,则应打印True,因为数字list1中的一个是list2中的整个列表.因此,由于list1包含数字4、5、6,因此输出应为True.

这是我尝试过的

for i in range(len(list2)):

if list1 in list2[i]:

print('True')

else:

print('False')

它两次打印出False(但我需要打印出True),我明白了为什么

[1, 2, 3] in [1, 2, 3, 4]

>>> False

有办法避免这种情况吗?

还是我应该只使用字符串,因为它可以正常工作?

解决方法:

与列表相比,集合更有效地查找项目集合是否是另一个项目的子集.通过将列表强制转换为集合,可以使用set.issuperset方法快速查找.

list_of_lists = [[1,2,3],[4,5,6]]

list1 = [4, 5, 6, 7]

list1_as_set = set(list1)

result = any(list1_as_set.issuperset(l) for l in list_of_lists) # True

上面使用any的代码等效于使用for循环的此解决方案.

for l in list_of_lists:

if list1_as_set.issuperset(l):

result = True

break

else:

result = False

标签:list,python

来源: https://codeday.me/bug/20191211/2106475.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值