将列表分隔为不同名称的列表

2024-06-16 11:42:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前在攻读博士学位期间正在学习非常基础的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)
...

它是有效的,但看起来一点效率都没有。对于这个特定的问题,我还没有找到任何初学者友好的答案

你们知道更好的方法来处理循环内的多列表生成吗

谢谢你的关注, 祝你愉快

(附言:我是法国人,对任何与英语有关的错误表示抱歉!)


Tags: 项目网格元素列表基础wordsplitlines
2条回答

Python使用list()将字符串直接类型转换到list中。您可以改用此函数:

def split(word): 
   return list(word)

您可以使用for循环遍历列表,使用split方法拆分元素,并将拆分的元素存储在新列表中。 通过遍历新列表,您可以再次访问拆分的行

这里有一个小例子。第一个print命令将打印出整个列表。第二个是单一元素

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])

相关问题 更多 >