
[英]How to check if a character is in an 2d array and then print the corresponding values
[英]How to check if input is in a array and print the corresponding element of another array?
如果我要创建一个“翻译器”,并且为每个字母分配一个世界(例如cat = a,dog = b ...),我可以只制作2个数组,其中第一个数组中每个字母的“翻译”对应于在另一个数组中字母本身位置相同的元素
array_1 = ["a", "b"]
array_2 = ["cat", "dog"]
def translation(phrase):
translation = ""
for letter in phrase:
if letter in array_1:
translation += #the element of array_2 in the same position of the element of array_1 witch is equal to letter
return translation
print(translation(input()))
您可以使用两个列表。 但是,更好的解决方案是使用字典值。 这样,您只需输入一个键(输入字),然后为其提供要转换的值。 您可以使用此:
dictionary = { 'a': 'cat', 'b' : 'dog'}
并可以轻松地以input : output
形式添加更多翻译,以更轻松地查看每个输入所翻译的内容。 然后翻译单词的方法是,对于每个输入,键入
dictionary[input]
您将获得正确的输出。 例如,在此示例中, dictionary['a']
将返回'cat'
。 这样可以节省时间,计算每个键和输出在每个列表中的位置,以确保它们匹配。
要连续翻译多个字符,请使用以下命令:
dictionary = { 'a': 'cat', 'b' : 'dog'}
undecoded="abbabaa"
decoded=""
for i in undecoded:
decoded=decoded+dictionary[i]
print(decoded)
希望这可以帮助! -西奥
编辑:正如juanpa.arrivillaga所提到的,如果您已经有两个要转换成字典形式的列表,则可以使用dictionary=dict(zip(array_1, array_2))
您可以使用list.index()
函数找到正确的索引:
array_1 = ["a", "b"]
array_2 = ["cat", "dog"]
phrase = 'acba'
def translation(phrase):
for letter in phrase:
yield array_2[array_1.index(letter)] if letter in array_1 else None
for t in translation(phrase):
if t:
print(t)
else:
print('NOT FOUND')
印刷品:
cat
NOT FOUND
dog
cat
编辑:将短语连接到一个字符串,您可以例如:
final_string = ''.join(t if t is not None else '' for t in translation(phrase))
print(final_string)
印刷品:
catdogcat
像这样写一个字典:
d = {array_1[n] :array_2[n] for n in range(len(array_1))}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.