python - 给定列表中的一个单词,我需要找到列表中所有下一个数值

标签 python list

我从Python开始。抱歉,如果问题很琐碎。

我一直在寻找,但没有发现任何像我的问题。

给定列表中的一个单词,我需要从给定单词的位置找到至少包含一个数字的第一个单词。

例如,给定的单词是= CAR,我的列表是:

ls1 = ['MOTO', 'FREZZE', 'CAR', 'DECIDING', 'LOCAL', 'USING', '4587125', 'JOY', 'CAR', 'YORT', '548H21']

我预计会回来:

ls2 = ['4587125','548H21']

我一直在尝试,但没有找到结果...... 感谢您的帮助,

我的代码,

def hasNumbers(inputString):
 return any(char.isdigit() for char in inputString)

def number_word (character):
  while not hasNumbers(character):
    character = [ls1()[i + 1] for i, word in enumerate(ls1()[:-1]) if word == character]
    if hasNumbers(character):
        return character

马库斯

最佳答案

迭代列表并跟踪您看到该单词的频率,然后当您看到一个数字时,按照您之前看到该单词的频率产生它。您可以将其作为生成器:

def get_nums_after(lst, word):
    seen = 0
    for x in lst:
        if x == word:
            seen += 1
        if any(c.isdigit() for c in x):
            while seen > 0:
                yield x
                seen -= 1

示例:

ls1 = ['MOTO', 'FREZZE', 'CAR', 'DECIDING', 'LOCAL', 'USING', '4587125', 'JOY', 'CAR', 'YORT', '548H21']
print(list(get_nums_after(ls1, "CAR")))
# ['4587125', '548H21']
ls2 = ["1", "CAR", "FOO", "2", "3", "CAR", "CAR", "4"]
print(list(get_nums_after(ls2, "CAR")))
# ['2', '4', '4']

关于python - 给定列表中的一个单词,我需要找到列表中所有下一个数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45301578/

相关文章:

python - 显示列表中的某些项目

python - Seaborn Catplot 仅更改其中 1 行上的 X 和 Y 标签

python - 如何在 django 中使用 get_next_by_FOO() ?

python - 从字符串列表中删除整数

python - 在元组/列表之间转换时会发生什么?

python - 如何在列表中找到定义的序列?

java - 找到两个链表的合并节点?

python - 如何将 smtp 调试信息记录到文件中?

python - 为什么 Coverage.py 忽略没有覆盖的文件?

python - 如何在 Cython 中使用用 C 编写的函数