【问题标题】:Python loop indexingPython循环索引
【发布时间】:2015-03-27 18:36:36
【问题描述】:

我正在阅读一本关于 Python3 和线性代数的书。我正在尝试获取格式为“name junk junk 1 1 1 1 1”的字符串,并制作一个字典,其中的名称和数字从字符串转换为整数。即 {name:[1,1,1,1,1]} 但我不太清楚循环,因为我是 python 新手。这是我的代码:

string = 'Name junk junk -1 -1 1 1'
for i, x in string.split(" "):
        if i == 0:
            a = x
        if i > 2:
            b = int(x)

运行该代码会产生以下错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)

理想情况下,我也希望它是一种理解。但如果我能得到循环,我可能会弄清楚那部分。

【问题讨论】:

  • 在 Python 中,赋值是(仅)语句,而不是表达式。我不确定您要对 a 和 b 做什么,但可能很难将其转换为单个理解,因为理解的第一个元素是表达式。
  • 那个“垃圾垃圾”呢?只是垃圾?

标签: python loops indexing


【解决方案1】:

您的意思是使用enumerate吗?

for i, x in enumerate(string.split(" ")):
     # ...

使用列表推导:

tokens = string.split() # Splits by whitespace by default, can drop " "
result = {tokens[0]: [int(x) for x in tokens[3:]]} # {'Name': [-1, -1, 1, 1]}

【讨论】:

  • 我从没想过那样做。谢谢!!
猜你喜欢
  • 2012-11-23
  • 2021-12-20
  • 1970-01-01
  • 2018-03-16
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 2016-07-24
  • 2013-03-20
相关资源
最近更新 更多