我目前在攻读博士学位期间正在学习非常基础的python作为一个辅助项目。为了应用我所学的知识,我想自动化一个基本的数独网格求解器
这个故事从一个列表开始
lines=['53xx7xxxx', '6xx195xxx', 'x98xxxx6x', '8xxx6xxx3', '4xx8x3xx1', '7xxx2xxx6', 'x6xxxx28x', 'xxx419xx5', 'xxxx8xx79']
我想得到一个看起来像:
line1=['5', '3', 'x', 'x', '7', 'x', 'x', 'x', 'x']
line2=['6', 'x', 'x', '1', '9', '5', 'x', 'x', 'x']
...
等等
我一直在努力以一种非常有效的方式循环整个过程。 现在,我所做的是通过获取每个元素来创建每个列表,然后用我在教程网站上看到的一个小函数来拆分它们
对于列表中的每个元素,我重复一遍,我只需要复制粘贴并获得从第1行到第9行的列表
def split(word):
return [char for char in word]
line1=lines[0]
line1=split(line1)
line2=lines[1]
line2=split(line2)
...
它是有效的,但看起来一点效率都没有。对于这个特定的问题,我还没有找到任何初学者友好的答案
你们知道更好的方法来处理循环内的多列表生成吗
谢谢你的关注, 祝你愉快
(附言:我是法国人,对任何与英语有关的错误表示抱歉!)
Python使用list()将字符串直接类型转换到list中。您可以改用此函数:
您可以使用for循环遍历列表,使用split方法拆分元素,并将拆分的元素存储在新列表中。 通过遍历新列表,您可以再次访问拆分的行
这里有一个小例子。第一个print命令将打印出整个列表。第二个是单一元素
相关问题 更多 >
编程相关推荐