list[[]*3] 、 list[[],[],[]]和list[[]]*3区别

以下是我的测试代码,输出结果都不相同,使用Python3.6在pycharm上编写的代码:
result=[[]]*6
#result=[[]*6]
#result=[[],[],[],[],[]]
with open('2.txt','r') as f:
    for line in f:
        tmp=line.split()
        result[0].append(tmp[0])   #对result中第一个list添加tmp[0]
        result[1].append(tmp[1])
        result[2].append(tmp[2])
    print(result)
望各位不吝赐教,如果要定义result=[[],[],[]……],里面有N个空列表,该如何定义呢?
qq_风_172
浏览 1656回答 1
1回答

清波

没有看懂题主的意图,从代码看,是想将每行的每个词,分别放入多维列表中,可是各行的单词数是不同的,要不要用“稀疏数组(列表)”呢,当然python自带的列表并没有稀疏概念,就用None 表示;或者不用稀疏数组,直接将对应索引的单词按照行序放入多维列表?#无稀疏数组(列表/矩阵)代码 result=[] with open('2.txt','r') as f:     for line in f:         for index,value in enumerate(line.split()):             try:                 result[index].append(value)             except IndexError:                 result.append([])                 result[index].append(value)#稀疏数组(列表/矩阵)代码 算了好难写,既然已经给自己挖了坑,那我就在坑底躺着吧,不写了。 Python 有一些稀疏矩阵的模块和包,百度就可以。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python