2014-06-11 184 views
2

我已经创建了一个字典,我已经将列表的第一个元素作为关键字。我想将其余元素作为值追加到字典中:python访问列表中的第二个元素到最后一个元素

file_a包含制表符分隔的字段。

a = {} 
for line in file_a.readlines(): 
    split_line = line.strip().split('\t') 
    a[split_line[0]] = [] 
    a[split_line[0]].append(split_line[::-1]) # append from second to last element to the list 

:: - 1追加所有元素。我需要附加除第一个元素之外的所有元素(因为它用作键)。任何帮助将不胜感激。

例如如果字段:X \ T1 \ T2 \ T3我想哈希是:

'X': ['1', '2', '3'] 
+1

'split_line [1:] [:: - 1]' –

回答

5

Python切片语法是alist[start:end:step]。所以,你的分片::-1,你只是颠倒了名单。 如果你想最后第二个元素,正确的切片将 alist[1:]

a = {} 
for line in file_a.readlines(): 
    split_line = line.strip().split('\t') 
    a[split_line[0]] = split_line[1:] 
+0

为什么说给我 'X':[” 1','2','3']]与列表中的列表? – Mark

+0

检查代码示例。我编辑了我的答案。 –

2
a = {} 
for line in file_a: 
    split_line = line.strip().split('\t') 
    a[split_line[0]] = split_line[1:] 

您切片表达split_line[::-1]计算结果为split_line逆转,因为第三个参数是步骤(-1在此案件)。您想从元素1开始并一路走到最后,默认步长为1.请检查this answer了解切片符号的更多信息。

相关问题