gpt4 book ai didi

python - 根据字符串的一部分查找列表中字符串的索引

转载 作者:行者123 更新时间:2023-11-30 22:09:14 25 4
gpt4 key购买 nike

我有一个 list :

foolist = ['123-asd', '234-asd', '345-asd']

我想找到包含“234”的字符串的索引。目前我有这个:

boollist = ['234' in i for i in foolist]

这将为 foolist 的每个索引生成 True 和 False 列表。

然后查找索引,[print(i) for i,j in enumerate(foolist) if j==True]

这似乎有点不必要,是否有人有更 Eloquent 方法来根据字符串的一部分查找列表中字符串的索引

最佳答案

您可以将 next 与生成器表达式一起使用,并按特定字符进行分割以反射(reflect)字符串的结构:

foolist = ['123-asd','234-asd','345-asd']

res = next(i for i, j in enumerate(foolist) if '123' in j.split('-')[0]) # 0

如果可以有多个匹配项,您可以使用列表理解:

res = [i for i, j in enumerate(foolist) if '123' in j.split('-')[0]]  # [0]

为了相等,您应该使用 j.split('-')[0]] == '123' 作为条件。

理解中的打印注释

最好避免在列表理解中使用 print,因为它将返回 None。您会注意到,虽然您的终端将打印它找到的索引,但您还在构建一个 None 项目列表,其长度等于匹配项的数量。无论如何,该列表没有任何用处。

如果您只对打印项目感兴趣,则可以使用带有生成器表达式的 for 循环:

for idx in (i for i, j in enumerate(foolist) if '123' in j.split('-')[0]):
print(idx)

关于python - 根据字符串的一部分查找列表中字符串的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51984323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com