我正在尝试在列表中查找特定单词。听起来很简单,我和与之交谈的人都想不出答案。下面是我的问题的一个示例。
list = ['this is ', 'a simple ', 'list of things.']
我想在列表中找到单词"simple"
,并记下其位置。 (在此示例中也称为list[1]
。)
我尝试了几种方法,例如:
try:
print(list.index("simple"))
except (ValueError) as e:
print(e)
总是会返回'simple'
不在列表中。
关于我该怎么做才能解决这个问题?
答案 0 :(得分:0)
这是因为list.index函数在列表中搜索精确的“简单”字符串的出现,即它不执行任何子字符串搜索。要完成您的任务,您可以使用in
运算符并对列表中的每个字符串进行比较:
my_list = ['this is ', 'a simple ', 'list of things.']
def find_string(l, word):
for i, s in enumerate(l):
if word in s:
return i
else:
raise ValueError('"{}" is not in list'.format(word))
try:
print(find_string(my_list, "simple"))
except ValueError as e:
print(e)
答案 1 :(得分:0)
您可以遍历列表并检查单词是否在列表项中,并通过创建变量来获取其索引。这是示例代码:
list = ['this is ', 'a simple ', 'list of things.'] #our list
word = "simple" #specific word
ind = 0 #index
for item in list: #looping through the list
if word in item: #if the word is in the list item x
print("'"+item+"',"+str(ind)) #printing the full word and its index separated by comma
ind += 1 # adding 1 in index
如果找不到该单词,则不会打印任何内容。
答案 2 :(得分:0)
您需要遍历列表中的每个元素,并确定单词是否在列表中。您可以定义一个函数来处理此问题:
def word_check(my_list, word):
for i in range(0, len(my_list)):
if word in my_list[i]:
return i
return False
list = ['this is ', 'a simple ', 'list of things.']
word_check(list, 'simple')
该函数将返回单词的索引(如果找到),否则将返回false。