2016-03-08 2 views
-6

У меня есть список списков A_str, в котором содержится информация о наименованиях компании и финансовых коэффициентах. Теперь я хотел бы иметь один новый список только с названиями компаний и вторым списком со всеми коэффициентами. До сих пор я мог разбить список на «-», но я не могу добавить эти новые элементы в «новые» списки «компании» и «коэффициенты».Разделить список в новом списке

A_str = ['Name', 
     'AMAZON.COM - TOT RETURN IND', 
     'AMAZON.COM INC - NET CASH FLOW - FINANCING', 
     'AMAZON.COM INC - NET CASH FLOW - INVESTING', 
     'AMAZON.COM INC - NET CASH FLOW-OPERATING ACTIVS', 
     'AMAZON.COM INC - COST OF GOODS SOLD (EXCL DEP)', 
     'AMAZON.COM INC - EARNINGS BEF INTEREST & TAXES', 
     'AMAZON.COM INC - EBIT & DEPRECIATION', 
     'AMAZON.COM INC - GROSS INCOME', 
     'AMAZON.COM INC - NET SALES OR REVENUES', 
     'AMAZON.COM INC - OPERATING INCOME', 
     'AMAZON.COM INC - NET INCOME AVAILABLE TO COMMON', 
     'AMAZON.COM INC - ACCOUNTS PAYABLE', 
     'AMAZON.COM INC - CASH', 
     "AMAZON.COM INC - COMMON SHAREHOLDERS' EQUITY", 
     'AMAZON.COM INC - CURRENT ASSETS - TOTAL', 
     'AMAZON.COM INC - CURRENT LIABILITIES-TOTAL', 
     'AMAZON.COM INC - TOTAL INVENTORIES', 
     'AMAZON.COM INC - LONG TERM DEBT', 
     'AMAZON.COM INC - TOTAL ASSETS'] 

    for element in A_str: 
     company.append(element.split('-')) 
    print company 

Вывод должен выглядеть следующим образом:

company = [AMAZON.COM, AMAZON.COM INC, AMAZON.COM INC... AMATON.COM INC] 
ratios = [TOT RETURN IND, NET CASH FLOW - FINANCING, NET CASH FLOW - INVESTING... TOTAL ASSETS] 
+2

не выглядит как список списков – AlokThakur

+1

Можете ли вы привести пример нужного выхода? – Blckknght

ответ

0

Вы можете просто карту раскола, фильтр, если он делает размер 2 кортеж, и молнии его, чтобы получить значения отдельно:

In[9]: l=['Name', 'AMAZON.COM - TOT RETURN IND', 'AMAZON.COM INC - NET CASH FLOW - FINANCING', 'AMAZON.COM INC - NET CASH FLOW - INVESTING', 'AMAZON.COM INC - NET CASH FLOW-OPERATING ACTIVS', 'AMAZON.COM INC - COST OF GOODS SOLD (EXCL DEP)', 'AMAZON.COM INC - EARNINGS BEF INTEREST & TAXES', 'AMAZON.COM INC - EBIT & DEPRECIATION', 'AMAZON.COM INC - GROSS INCOME', 'AMAZON.COM INC - NET SALES OR REVENUES', 'AMAZON.COM INC - OPERATING INCOME', 'AMAZON.COM INC - NET INCOME AVAILABLE TO COMMON', 'AMAZON.COM INC - ACCOUNTS PAYABLE', 'AMAZON.COM INC - CASH', "AMAZON.COM INC - COMMON SHAREHOLDERS' EQUITY", 'AMAZON.COM INC - CURRENT ASSETS - TOTAL', 'AMAZON.COM INC - CURRENT LIABILITIES-TOTAL', 'AMAZON.COM INC - TOTAL INVENTORIES', 'AMAZON.COM INC - LONG TERM DEBT', 'AMAZON.COM INC - TOTAL ASSETS'] 

In[22]: companies, ratios =zip(*filter(lambda y: len(y) == 2, map(lambda x: tuple(x.split(" - ")), l))) 
In[23]: companies 
Out[22]: 
('AMAZON.COM', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC', 
'AMAZON.COM INC') 
In[24]: ratios 
Out[23]: 
('TOT RETURN IND', 
'NET CASH FLOW-OPERATING ACTIVS', 
'COST OF GOODS SOLD (EXCL DEP)', 
'EARNINGS BEF INTEREST & TAXES', 
'EBIT & DEPRECIATION', 
'GROSS INCOME', 
'NET SALES OR REVENUES', 
'OPERATING INCOME', 
'NET INCOME AVAILABLE TO COMMON', 
'ACCOUNTS PAYABLE', 
'CASH', 
"COMMON SHAREHOLDERS' EQUITY", 
'CURRENT LIABILITIES-TOTAL', 
'TOTAL INVENTORIES', 
'LONG TERM DEBT', 
'TOTAL ASSETS') 
+0

Большое спасибо за быстрый ответ, разработанный отлично! – DaveL

0

Разделите каждый элемент и запишите результат, опуская элемент заголовка:

company, ratios = zip(*(item.split(' - ') for item in A_str[1:])) 

Если вы хорошо с мутирует A_str, вы можете вытолкнуть элемент заголовка вместо:

A_str.pop(0) 
company, ratios = zip(*(item.split(' - ') for item in A_str)) 
Смежные вопросы