在攻读博士学位期间,我目前正在学习真正的基本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']
...
等...
我一直在努力地以一种非常有效的方式循环整个事情。 现在,我要做的是通过获取每个元素来创建每个列表,然后使用我在教程网站上看到的一个小函数来拆分它们。
对于列表中的每个元素,我重复一遍,我只需要复制粘贴并获得line1到line9列表。
def split(word):
return [char for char in word]
line1=lines[0]
line1=split(line1)
line2=lines[1]
line2=split(line2)
...
它可以工作,但是看起来根本没有效率。对于这个特定的问题,我还没有找到适合初学者的答案。
你们知道在循环中处理多个列表生成的更好方法吗?
感谢您的关注, 祝您愉快!
(PS:我是法国人,对于任何与英语相关的错误表示抱歉!)
答案 0 :(得分:2)
您可以使用for循环遍历列表,使用split方法拆分元素,并将拆分元素存储在新List中。 通过遍历新列表,您可以再次访问拆分的行。
这是一个小例子。第一个打印命令将打印出整个列表。第二个是单个元素。
def split(word):
return [char for char in word]
newList = []
for line in lines:
line = split(line)
newList.append(line)
print(newList)
print(newList[0])
答案 1 :(得分:1)
Python使用list()将字符串直接类型转换为list。您可以改用以下功能:
def split(word):
return list(word)