返回列表中每个值的特定值

时间:2018-02-02 06:46:46

标签: python

我想为列表中的每个值返回一个特定值。

list = ['sathya','varna','summi']

我想返回值,如果我的键是'sathya'返回-5,如果键是'varna'则返回-4。

截至目前,我的代码是:

def return_value():
   if key == 'sathya':
         return -5
   if key == 'varna':
         return -4

但我不想在条件允许的情况下使用这么多。任何人都可以帮助我

4 个答案:

答案 0 :(得分:2)

使用字典存储值并按键访问。

def return_value(key):
    return {'sathya': -5,'varna': -4,'summi': 'any value..'}[key]

答案 1 :(得分:0)

尝试使用dict而不是循环检查条件:

list = ['sathya','varna','summi']

name_to_id = {'sathya':-5,'varna':-4,'summi':-3}
for i in list:
    return name_to_id.get(i)

答案 2 :(得分:0)

您正在寻找的基本python数据结构是字典,而不是列表。 字典允许以本机方式进行键值配对。 实施例。

d={akey:aval}
d['mykey']=myval

然后你可以检索你的值

print(d['mykey'])

答案 3 :(得分:0)

如果返回值是索引,则可以使用enumerate

your_list = ['sathya','varna','summi']

方法1

def return_value(key):
    for index, key_ in enumerate(your_list, start=-5):
        if key == key_:
            return index
    return "Not found"

print(return_value('sathya')) # return -5
print(return_value('invalid item')) # return not found

方法2 (使用Dict理解)

def return_value(key):
    return {
            value: index 
            for index, value in enumerate(your_list ,start=-5)
           }.get(key, "Not found")

print(return_value('sathya')) # return -5
print(return_value('invalid item')) # return not found