2015-06-09 114 views
-2

我有一個簡單的for循環,它將一個列表分配給一個變量,同時我想刪除列表中所有變量的第一個元素。下面的代碼運行良好,但它不是刪除列表中的第一個元素,有什麼建議嗎?使用for循環刪除列表中的第一個項目

for x in range(0, len(dataList)-1): 
     globals()['Row%s' % x] = dataList[x].split(',') 
     del ['Row%s' % x] [0] 

回答

0

下面的代碼工作得很好,但它未在列表中刪除第一個元素,有什麼建議?

因爲你沒有告訴它刪除列表中的第一個元素。您在刪除行中缺少globals(),只創建單個元素列表['Row1']並刪除'Row1'。嘗試:

for x in range(0, len(dataList)-1): 
    globals()['Row%s' % x] = dataList[x].split(',') 
    del globals()['Row%s' % x] [0] 

全局是它的一個非常嚴峻的黑客雖然,而是使用一本詞典或是正常的列表:

data = [] 
for x in range(0, len(datalist)-1): 
    parts = x.split(',') 
    del parts[0] 
    data.append(parts) 

事實上,Python可以切片名單,並逐一項目,而不計數:

data = [] 
for x in datalist: 
    parts = x.split(',') 
    data.append(parts[1:]) 

事實上,它有直接的樓宇名單了一個快捷方式:

data = [x.split(',')[1:] for x in datalist] 
+0

它像一個魅力! –

0

在這裏你去:

for x in range(0, len(dataList)-1): 
    if x == 0: 
     continue 
    globals()['Row%s' % x] = dataList[x].split(',') 
    del ['Row%s' % x] [0] 
+0

什麼是del ['Row%s'%x] [0]'當它變成del ['Row5'] [0]'時要做什麼'?使用字符串'Row5'構建一個項目列表,刪除'Row5',然後丟棄空列表。 – TessellatingHeckler

相關問題