我想为列表中的每个值返回一个特定值。
list = ['sathya','varna','summi']
我想返回值,如果我的键是'sathya'返回-5,如果键是'varna'则返回-4。
截至目前,我的代码是:
def return_value():
if key == 'sathya':
return -5
if key == 'varna':
return -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