2016-04-23 83 views
0

我有一個這樣的問題:如何獲取列表的列表?

list = ['a1',['b1',2],['c1',2,3],['d1',2,3,4]] 

我希望得到一個新的列表一樣,

new_list['a1','b1','c1','d1'] 

我這樣做:

lst = ['a1',['b1',2],['c1',2,3],['d1',2,3,4]] 
for item in lst: 
    print(item) 

結果是:

a1 
['b1', 2] 
['c1', 2, 3] 
['d1', 2, 3, 4] 

B UT我希望每個結果的第一個元素

最好的答案是這樣的:

my_list = list() 
lst = ['a1',['b1',2],['c1',2,3],['d1',2,3,4]] 
for element in lst: 
if type(element)==type('string'): 
    my_list.append(element) 
else: 
    my_list.append(element[0]) 
print(my_list) 

謝謝!

+4

的可能的複製[獲取列表的第一個元素,如果列表不無:Python的(http://stackoverflow.com/questions/9327158/get-first-element-of -list-if-list-is-none-python) – VermillionAzure

+0

不一樣的問題 –

+0

我認爲你的解決方案是不正確的。你想在輸出中使用'a1',但是你的解決方案會打印一個單獨的'a'字符。 – EbraHim

回答

1

做它,如下:

>>> my_list = list() 
>>> lst = ['a1',['b1',2],['c1',2,3],['d1',2,3,4]] 
>>> for element in lst: 
    if type(element)==type('string'): 
     my_list.append(element) 
    else: 
     my_list.append(element[0]) 

它會產生:

>>> my_list 
['a1', 'b1', 'c1', 'd1'] 
>>> 

正如你看到的上面,首先我創建了一個列表(名爲my_list),然後檢查你的列表中的每個元素。如果元素是一個字符串,我將它添加到my_list,否則(即它是一個列表),我將它的第一個元素添加到my_list

+0

這將無法正常工作,因爲它無法獲得a1作爲第一個元素 – karina

+0

@karina謝謝。我認爲現在沒問題。 :) – EbraHim

+0

謝謝!當我設計一個webscraping規則時,我有一些元素。莫爾德幫助我很多! –

0

我會做

res = [] 
for x in the_list: 
    if x is Array: 
     res.append(x[0]) 
    else: 
     res.append(x) 
+0

未能獲得每個子列表的第一個元素。請檢查。謝謝 –