首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python 3多行输入

python 3多行输入
EN

Stack Overflow用户
提问于 2013-04-16 20:20:50
回答 3查看 1.3K关注 0票数 0

我正在用Python制作一个数独解算器,我的代码可以工作,但我需要指定一个列表,该列表由列表中的9个列表组成,以便进行分析。我目前正在努力解决如何让用户在提示输入时,输入9个不带空格的数字,然后再重复8次;每次提交一行时,该行都会转换为列表。目前,我必须手动指定列表(参见下面的示例)。

代码语言:javascript
复制
b=[[2,5,9,7,1,6,4,8,3],
[8,6,7,3,4,5,9,1,2],
[4,1,3,9,2,8,6,7,5],
[3,9,8,5,7,4,1,2,6],
[5,4,6,2,8,1,7,3,9],
[1,7,2,6,3,9,5,4,8],
[9,8,4,1,6,3,2,5,7],
[6,2,1,8,5,7,3,9,4],
[7,3,5,4,9,2,8,6,1]]

我想做一个带有分裂函数的while循环,然后将每个值附加到一个列表中,但这只会创建一个巨大的列表。

有人能帮我吗?

我可以对此进行扩展,如果需要的话,也可以给你代码,谢谢。

EN

回答 3

Stack Overflow用户

发布于 2013-04-16 20:28:04

输入是用空格分隔的

代码语言:javascript
复制
b = [[int(x) for x in input()] for i in range(9)]

如果用空格分隔它不是更好吗?我知道你的问题没有指明,但你可以这样做:

代码语言:javascript
复制
b = [[int(x) for x in input().split()] for i in range(9)]

注意:Python2.7上的raw_input

票数 2
EN

Stack Overflow用户

发布于 2013-04-16 20:28:06

首先,找出他们第一个输入的len()是什么,然后创建一个该长度的列表。然后,每次循环时,创建一个列表并将其添加到容器列表中。一旦有了正确数量的列表来构建行,就不要再要求输入了。有几种方法可以通过whilefor循环来实现这一点。

票数 0
EN

Stack Overflow用户

发布于 2013-04-16 20:36:41

您可以在输入上使用list comprehension,然后将其附加到主列表中:

代码语言:javascript
复制
main = []
...
#get input
...
main.append([int(i) for i in input])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16036933

复制
相关文章

相似问题

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