首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法解包数值并追加到列表?

无法解包数值并追加到列表?
EN

Stack Overflow用户
提问于 2020-05-13 02:49:42
回答 3查看 70关注 0票数 0

此for循环应该分别生成问题和答案的两个列表,但输出只是原始列表中最后一个元素的最后一个值。我想知道为什么会发生这种事。很清楚还有另一种方法可以做到这一点,但是为什么这种解包和附加的特殊方法不起作用呢?谢谢

代码语言:javascript
运行
复制
   question_list = ['1+1=2', '2+2=4', '7-4=3']
   questions = []
   answers = []
   for question in question_list:
       q, a = question.split("=")
       questions.append(q)
       answers.append(a)
EN

回答 3

Stack Overflow用户

发布于 2020-05-13 02:55:43

当我修复了问题中糟糕的格式后,这似乎工作得很好:

代码语言:javascript
运行
复制
>>> question_list = ['1+1=2', '2+2=4', '7-4=3']
>>> questions = []
>>> answers = []
>>> for question in question_list:
...     q, a = question.split("=")
...     questions.append(q)
...     answers.append(a)
...
>>> questions, answers
(['1+1', '2+2', '7-4'], ['2', '4', '3'])

一种更简洁的方式是使用zip

代码语言:javascript
运行
复制
>>> questions, answers = zip(*[q.split("=") for q in question_list])
>>> questions, answers
(('1+1', '2+2', '7-4'), ('2', '4', '3'))
票数 0
EN

Stack Overflow用户

发布于 2020-05-13 02:59:04

程序运行得很好。输出:'1+1','2+2','7-4‘

代码语言:javascript
运行
复制
print(questions, answers)
票数 0
EN

Stack Overflow用户

发布于 2020-05-13 03:00:35

它工作正常,您可能正在打印question而不是questions

使用列表理解生成2列表的另一种格式:

代码语言:javascript
运行
复制
questions = [x.split("=")[0] for x in question_list]
answers = [x.split("=")[1] for x in question_list]
print(questions, answers)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61759683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档