我需要一些简单的帮助。我的文件内容如下:
jdss
sdjk
nbjs
因此,每行中都有未知数量的行和未知数字,但所有行的长度都相同。我想得到一个二维列表
[['j','d','s','s'],
['s','d','j','k'],
['n','b','j','s']]
如何以最简单的方式做到这一点?我尝试了什么:
list = [[]]
for line in f:
whichLine = 0
for ch in line:
list [whichLine].append(ch)
list.append([])
whichLine += 1
但它不能像我想的那样工作。
答案 0 :(得分:4)
列表理解在这里运作良好。
my_list = [[c for c in line] for line in f]
(请注意,覆盖名称list
)
如果您不想要换行符
my_list = [[c for c in line.strip()] for line in f]
答案 1 :(得分:4)
>>> [list(line) for line in f]
[['j', 'd', 's', 's'], ['s', 'd', 'j', 'k'], ['n', 'b', 'j', 's']]
答案 2 :(得分:1)
data = []
filename = '/path/to/file'
with open(filename,'r') as f:
lines = f.readlines()
for line in lines:
data.append(list(line))
答案 3 :(得分:1)
为了证明您的代码与正确的接近程度,这是一个使用您的方法的固定解决方案:
my_list = []
for line in f:
my_list.append([])
for ch in line:
my_list[-1].append(ch)