2016-05-05 2 views
1

У меня есть строка:Преобразование строки в список переменного

str='ABCDEFG' 

Я также Numpy массивов определено:

A=numpy.array([1,2,3]) 
B=numpy.array([2,3,4]) 

Теперь я хочу, чтобы иметь возможность тайной строку в Numpy массива с строки, определяемые этими переменными:

str=[[1,2,3],[2,3,4],...] 

это очень длинные строки, и я предпочел бы не перебрать их с фи и замените тип операции.

+0

Итак, каков ожидаемый результат для образца? – Divakar

ответ

1

Список понимание для победы:

In[18]: str='ABCDEFG' 
In[19]: A=[1,2,3] 
B=[2,3,4] 
In[20]: [locals().get(x) for x in str if x in locals().keys()] 
Out[20]: [[1, 2, 3], [2, 3, 4]] 

Вы должны использовать locals или globals в зависимости от вашего объема.

0

Я бы не рекомендовал подход, который вы предлагаете. Управление переменными и именами переменных - это действительно задача программиста, а не программы.

Похоже, что то, что вы пытаетесь сделать, было бы проще с помощью объекта DataFrame (т. Е. Таблицы). Каждая строка данных будет иметь идентификатор (символ в «ABCDEFG» в вашем случае).

Я бы рекомендовал проверить библиотеку панд: http://pandas.pydata.org/. Он подходит для вашего прецедента с минимальным кодом:

import pandas as pd 

rownames = list('AB') 

dataframe = pd.DataFrame([[1,2,3],[2,3,4]], index=rownames) 

dataframe.loc['B'] # Returns [2, 3, 4] as a Series 
Смежные вопросы