python嵌套列表索引 index_在嵌套列表python中查找字符串及其索引的所有出现处

问题1:这里有一种使用嵌套理解列表的方法。不过,我会看看有没有被骗。在nested_list = [['john'],['jack','john','mary'],['howard','john'],['jude']]

out = [(ind,ind2) for ind,i in enumerate(nested_list)

for ind2,y in enumerate(i) if y == 'john']

print(out)

返回:[(0, 0), (1, 1), (2, 1)]

问题2:(来自评论)

是的,通过将y == 'john'编辑为:'john' in y,这非常简单。在nested_list = [['john xyz'],['jack','john dow','mary'],['howard','john'],['jude']]

out = [(ind,ind2) for ind,i in enumerate(nested_list)

for ind2,y in enumerate(i) if 'john' in y]

print(out)

返回:[(0, 0), (1, 1), (2, 1)]

问题3:(来自评论)

获取前N个元素的最有效方法是使用pythons库itertools,如下所示:import itertools

nested_list = [['john xyz'],['jack','john dow','mary'],['howard','john'],['jude']]

gen = ((ind,ind2) for ind,i in enumerate(nested_list)

for ind2,y in enumerate(i) if 'john' in y)

out = list(itertools.islice(gen, 2)) # < Next 2

print(out)

返回:[(0, 0), (1, 1)]

问题3扩展:

假设你想把它们分成N块,然后你可以这样做:import itertools

nested_list = [['john xyz'],['jack','john dow','mary'],['howard','john'],['jude']]

gen = ((ind,ind2) for ind,i in enumerate(nested_list)

for ind2,y in enumerate(i) if 'john' in y)

f = lambda x: list(itertools.islice(x, 2)) # Take two elements from generator

print(f(gen)) # calls the lambda function asking for 2 elements from gen

print(f(gen)) # calls the lambda function asking for 2 elements from gen

print(f(gen)) # calls the lambda function asking for 2 elements from gen

退货:[(0, 0), (1, 1)]

[(2, 1)]

[]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值