【问题标题】:python accessing the second to the last element in a listpython访问列表中倒数第二个元素
【发布时间】:2014-06-11 10:23:40
【问题描述】:

我创建了一个字典,我将列表的第一个元素分配为键。我想将其余元素作为值附加到字典中:

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']

【问题讨论】:

  • split_line[1:][::-1]

标签: python list split


【解决方案1】:

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:]

【讨论】:

  • 为什么这给了我 'X': [['1', '2', '3']] 列表中的列表?
【解决方案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 了解有关切片符号的更多信息。

【讨论】:

    猜你喜欢
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 2011-09-19
    • 1970-01-01
    • 2022-12-05
    • 2017-10-27
    • 2021-05-19
    相关资源
    最近更新 更多