x= [0,2,3,5,6];
y= [64,384,1024,4096,384];
Выше приведены два массива, которые я использую. Я пытаюсь совместить элементы вместе на питоновском пути
пример:
если xType
равно 2, я хочу вычислить переменную, называемую yType
чтобы соответствовать ее значению (положению) по y. поэтому я должен получить y = 384
. если xType = 3
я должен получить 1024.
Как мне это сделать?
Это так мало, даже Qaru не позволил мне представить такой короткий ответ:
y[x.index(2)]
Это вернет элемент из y
соответствующий позиции 2
или любому другому заданному значению из списка x
.
Надеюсь, это помогло :)
Ps. Действительно словари могут быть чем-то вам нужны. Попробуйте использовать их.
Если ваша конкретная цель - генерировать dict
из двух списков, которые вы указали, используйте zip
:
>>> x = [0,2,3,5,6]
>>> y = [64,384,1024,4096,384]
>>> dict(zip(x, y))
{0: 64, 2: 384, 3: 1024, 5: 4096, 6: 384}
И избавьтесь от этих точек с запятой!
Если вам не нужен тип сопоставления, но просто нужно создать пары элементов, то только zip
сделает:
>>> zip(x, y)
[(0, 64), (2, 384), (3, 1024), (5, 4096), (6, 384)]
Если элементы из x
уникальны, вы можете использовать их в качестве ключей в dict для поиска элементов в y
, имеющих один и тот же индекс. Как это:
x = [0,2,3,5,6]
y = [64,384,1024,4096,384]
y_from_x = dict(zip(x,y))
print y_from_x[2] # prints 384
print y_from_x[3] # prints 1024
Это полезно, если вы хотите делать много поисков, но если вы хотите сделать только один ответ, Tadeck более эффективен
>>> xymap = dict(zip(x, y))
>>> xymap[2]
384
Однако, если вам также нужны элементы поиска в x для y, вам также понадобится yxmap
. И если вам нужно, чтобы они были списками по какой-то причине (возможно, потому, что вы изменяете их во время своей программы), вы можете использовать i = x.index(2)
а затем y[i]
.
a = {0: 64, 2:384, ...}
искать "карты в python" или что-то в этом роде