测试列表中的值,在Python中从另一个列表替换

2024-04-26 08:00:03 发布

您现在位置:Python中文网/ 问答频道 /正文

请问,测试某个简单变量X是否在列表(或元组)中的“终极Python”方法是什么?如果为真,那么从同一位置的另一个列表(或元组)返回值?字典会更好用吗?你知道吗


Tags: 方法列表字典终极元组返回值
1条回答
网友
1楼 · 发布于 2024-04-26 08:00:03

list.index()tuple.index()方法返回匹配值的第一个索引:

def mapped_value(somelist, someotherlist, value):
    try:
        index = somelist.index(value)
    except ValueError:
        return None
    return someotherlist[index]

如果value不存在,则引发ValueError,此时返回None。你知道吗

通过捕捉IndexError,可以使其更加紧凑,并防止较短的someotherlist

def mapped_value(somelist, someotherlist, value):
    try:
        return someotherlist[somelist.index(value)]
    except (ValueError, IndexError):
        return None

但是,将值映射到其他值的字典会更方便,是的。您可以使用以下工具将两个列表转换为词典:

mapping = dict(zip(somelist, someotherlist))
return mapping.get(value)

其中假定somelist中的项是唯一的和可散列的。你知道吗

演示:

>>> somelist = ['foo', 'bar', 'baz']
>>> someotherlist = ['spam', 'ham', 'eggs']
>>> mapped_value(somelist, someotherlist, 'bar')
'ham'
>>> mapping = dict(zip(somelist, someotherlist))
>>> mapping.get('bar')
'ham'

相关问题 更多 >