我从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/