【问题标题】:Using index -1 to make splitting empty string possible for temp = a[index].split(" ")? [duplicate]使用索引 -1 可以为 temp = a[index].split(" ") 拆分空字符串? [复制]
【发布时间】:2020-11-23 23:04:50
【问题描述】:

下面有一些奇怪的东西。如果我要将 y.append(temp[-1]) 更改为 y.append(temp[1])。我会收到一条错误消息

y.append(temp[1]) IndexError: 列表索引超出范围

因为我正在索引变量 a,所以每次循环中我都应该得到以下临时值。

['350', '2']

['450', '9']

['570', '12']

['', '']

这应该允许我使用 temp[0] 和 temp[1]。这是一个错误吗?

x = []
y = []

a = ['350 5', '450 9', '570 12', '']

for index in range(len(a)):
    print(index)
    temp = a[index].split(" ")
    x.append(temp[0])
    y.append(temp[-1])

print(x)
print(y)

【问题讨论】:

  • 99.99% 的情况下,假设 CPython 存在错误是不明智的。您正在尝试拆分一个空字符串并假设您得到 2 个值。你没有
  • 您只需将''.split() 放入REPL 并查看输出。这是一个空列表

标签: python for-loop indexing append


【解决方案1】:

列表的最后一项不包含空格,因此 split 函数返回的列表不仅仅是一个值(它是一个空字符串)。 temp[1] 指向 temp 中不存在的项目。

【讨论】:

  • 杰罗,感谢您的明确回答。现在对我来说很有意义。如果它是一个空字符串,为什么 -1 有效?它不应该是一致的而不是一起工作吗?这是我使用 -1 索引得到的答案 - ['350', '450', '570', ''] ['5', '9', '12', '']
猜你喜欢
  • 2018-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
  • 2012-11-04
相关资源
最近更新 更多