如何从文件中创建二维字符列表?

时间:2017-02-10 20:41:02

标签: python python-3.x

我需要一些简单的帮助。我的文件内容如下:

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

但它不能像我想的那样工作。

4 个答案:

答案 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)