我有以下的土地使用类别,他们每个都有一个关键
1, 2, 3, 4, = [Arable]
5, 6, 7, = Non arable
8 = Protected
c = Climate
e = Erosion
s = Soil
w = Wetness
estu= Estuaries
ice = Ice
lake = Lake
quar = quarries/mines
rive = River
town = town/urba
我想创建一个函数,允许我调用多个值 即如果我输入4e15它应该返回'rable(4)'、'糜烂有限'、'15'、'、'、'、'、'、'
如果我输入了无效代码,它应该只返回黑色
最后,如果输入了一个非标称代码,则应在输出列表的位置0、1、3、4处返回该代码的含义,并在位置2和5处用空格作为值。
我不确定我是否正确地解释了你的问题。通常,您可以创建@Jameson提到的字典表。但是,如果不使用分隔字符的分隔符来解析4e15表达式,则会使您的函数仅限于代码中提供的一组选项,从技术上讲,它不适用于较大的范围,而适用于较小的(有限的)范围。因此,让我展示一下实现这一目标的一般方法:
此函数只解析每个字符串输入的一个字符,如果您输入字符串
"15"
,它将尝试从字典中获取"1"
的值,然后"5"
,而不是整个字符串"15"
!你知道吗使用分隔符方式,这将更实用,更易于维护和使用。例如:
如您所见,如果您输入1和5,解析时它是
"15"
,与以前的版本不同。另一个选择是列出用户可能输入的所有组合,但这是多么乏味的工作!例如:table = {'4e15': your values, 'e415': your values, '415e': your values, continuing with others as well...}
非常复杂,您将编写一个庞大的组合列表,而且在维护方面效率不高,因为您硬编码了许多组合,一个小小的更改可能会导致重新编写所有组合!你知道吗
在不完全了解您的用法的情况下,这看起来是一个很好的Python字典场景:
输出:
也就是说,问题似乎没有得到很好的界定。输入“15”可能会被解释为1,然后是5,而不是唯一的15,并且鉴于您当前的输入,应该没有办法区分。如果从定义良好的一组不同的输入文字开始,就更容易了。你知道吗
相关问题 更多 >
编程相关推荐