Python 基于索引获取列表中单词中字母的索引
假设我有一个单词列表:Python 基于索引获取列表中单词中字母的索引,python,string,list,numpy,itertools,Python,String,List,Numpy,Itertools,假设我有一个单词列表: l = ['example', 'to', 'a', 'list', 'of', 'words'] 我得到一个索引I,比如说10 我需要返回l中包含第I个字符的单词内的字母索引 所以在10的例子中,由于第10个元素(以零为基)是单词列表中的l-我需要返回的是0,因为l是单词中的第一个字母 例如,对于i=17,输出将为1,因为17表示单词中的字母o,而单词中的o的索引为1 我一直在想一个简单的方法来做这件事,但我没有找到优雅的东西 任何帮助都将不胜感激 我问了一个类似的问
l = ['example', 'to', 'a', 'list', 'of', 'words']
我得到一个索引I,比如说10
我需要返回l
中包含第I个字符的单词内的字母索引
所以在10的例子中,由于第10个元素(以零为基)是单词列表中的l
-我需要返回的是0,因为l
是单词中的第一个字母
例如,对于i=17,输出将为1
,因为17表示单词中的字母o
,而单词中的o
的索引为1
我一直在想一个简单的方法来做这件事,但我没有找到优雅的东西
任何帮助都将不胜感激
我问了一个类似的问题,在这里得到了很好的答案:
但是找不到一个好方法来修改我需要的答案
l = ['example', 'to', 'a', 'list', 'of', 'words']
index = 10
fl = [(c[1], c[0], w[1], w[0]) for w in enumerate(l) for c in enumerate(w[1])]
print('char = ' + fl[index][0] +
', index in word = ' + str(fl[index][1]) +
', word = ' + fl[index][2])
# char = l, index in word = 0, word = list
如果您只需要单词中的索引:
fl2 = [c[0] for w in enumerate(l) for c in enumerate(w[1])]
print('index in word = ' + str(fl2[index]))
# index in word = 0
您在上一个问题中接受的解决方案(查找单词):
解决新问题的简单修改(在word中查找索引):
该解决方案可能比公认的解决方案简单得多(l
是您的文字欲望,i
是字母索引):
您可以使用任何字母表(在本例中,我使用了'abcdefghijklmnopqrstuvwxyz'
)。另外,为next
函数设置默认值也很重要,否则可能会出现异常。请根据您的需要编辑您的问题。@SayandipDutta-什么不清楚?以前很清楚,您的评论不清楚,您不能稍微修改一下您的答案吗?为什么我看不到你的任何尝试?这一点都不完全不同,调整你在那里接受的答案也很简单。
c = count()
print(next(s for s in l for _, i in zip(s, c) if i == 10))
c = count()
print(next(j for s in l for j, i in zip(range(len(s)), c) if i == 10))
from string import ascii_lowercase as alphabet
result = next((idx for idx, x in enumerate(l) if alphabet[i] in x), None)