如果我们要处理一堆散列表,只想提取其中 某一列,而列的位置不一定的时候:
例如
lists=[['价格', '涨跌', '交易方式', '备注'],
['8000', '-25', '快递', '11月上'],
['3300', '-20', '自提', '12月上'],
['6000', '5', '外卖', '1月下'],
['7000', '10', '自提', '2月下']]
有时候【价格】这一列,不一定在第一列的位置上,所以提取的时候不能直接用index值来做索引。
这时候就得要先判断它在整体所有列数中的index值,获取到这一列的值。
在Python中,如果你想找到列表中某个关键词的位置(即索引),你可以使用index()方法或者列表的find()方法。
index()方法会返回关键词在列表中第一次出现的索引,如果关键词不存在于列表中,则会抛出一个ValueError异常。
而find()方法并不是Python列表自带的方法,但可以通过自定义一个函数来实现类似的功能,它在找不到关键词时会返回-1。
以下是使用这两种方法的示例:
方法一:使用 index() 方法
首先判断目标词在整个列表中的什么位置:
my_list = lists[0]
keyword = '价格'
try:
index = my_list.index(keyword)
print(f"关键词 '{keyword}' 的位置是: {index}")
except ValueError:
print(f"关键词 '{keyword}' 不在列表中。")
注意:
在 index = my_list.index(keyword) 这里,index后面是(),而不是[ ], 我测试的时候就遇到下面的问题,找了一会才发现是符号写错了。
方法二 :使用自定义 find() 方法
my_list = lists[0]
keyword = '价格'
def find(lst, item):
try:
return lst.index(item)
except ValueError:
return -1
index = find(my_list, keyword)
if index != -1:
print(f"关键词 '{keyword}' 的位置是: {index}")
else:
print(f"关键词 '{keyword}' 不在列表中。")
两种方法都能找到关键词在列表中的位置,选择哪一种取决于你希望如何处理关键词不存在的情况。
如果你希望在关键词不存在时有一个明确的异常提示,可以使用index()方法;
如果你希望在关键词不存在时返回一个特定的值(如-1),则可以使用自定义的find()方法呀~