【Python】列表中,判断列名在列表中第几列(获取index值)的方法

如果我们要处理一堆散列表,只想提取其中 某一列,而列的位置不一定的时候:
例如

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()方法呀~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值