Python, соответствующий двум элементам списка

1
x= [0,2,3,5,6];
y= [64,384,1024,4096,384];

Выше приведены два массива, которые я использую. Я пытаюсь совместить элементы вместе на питоновском пути

пример:

если xType равно 2, я хочу вычислить переменную, называемую yType чтобы соответствовать ее значению (положению) по y. поэтому я должен получить y = 384. если xType = 3 я должен получить 1024.

Как мне это сделать?

Теги:
list
matching
elements

5 ответов

5
Лучший ответ

Это так мало, даже Qaru не позволил мне представить такой короткий ответ:

y[x.index(2)]

Это вернет элемент из y соответствующий позиции 2 или любому другому заданному значению из списка x.

Надеюсь, это помогло :)

Ps. Действительно словари могут быть чем-то вам нужны. Попробуйте использовать их.

  • 0
    Спасибо всем, это то, что мне нужно. Но мне нравится концепция словарей и карт. Я посмотрю на них. большое спасибо
6

Если ваша конкретная цель - генерировать 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)]
3

Если элементы из 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 более эффективен

2
>>> xymap = dict(zip(x, y))
>>> xymap[2]
384

Однако, если вам также нужны элементы поиска в x для y, вам также понадобится yxmap. И если вам нужно, чтобы они были списками по какой-то причине (возможно, потому, что вы изменяете их во время своей программы), вы можете использовать i = x.index(2) а затем y[i].

2
a = {0: 64, 2:384, ...}

искать "карты в python" или что-то в этом роде

Ещё вопросы

Сообщество Overcoder
Наверх
Меню