如果我们要处理一堆散列表,只想提取其中 某一列,而列的位置不一定的时候:
例如
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方法查找关键词的位置
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 = '价格'
# 自定义find方法
def find(lst, item):
try:
return lst.index(item)
except ValueError:
return -1
# 使用自定义find方法查找关键词的位置
index = find(my_list, keyword)
if index != -1:
print(f"关键词 '{keyword}' 的位置是: {index}")
else:
print(f"关键词 '{keyword}' 不在列表中。")
两种方法都能找到关键词在列表中的位置,选择哪一种取决于你希望如何处理关键词不存在的情况。
如果你希望在关键词不存在时有一个明确的异常提示,可以使用index()
方法;
如果你希望在关键词不存在时返回一个特定的值(如-1),则可以使用自定义的find()
方法呀~