f = open("sonad.txt",encoding="utf-8")
c = f.readlines()
blokk = [[]] * 15
for read in c:
    length = len(read.strip())
    blokk[length].append(read.strip())


sonad.txt仅有一些随机单词,我想按如下顺序排列它们:

所有长度为1个字母的单词都放入blokk [1]
                        长2个字母去blokk [2]
等等...

但是我当前的代码所做的是将一个元素添加到allL block [x],以便
blokk [1] blokk [2] blokk [3] .....都是一样的。

最佳答案

blokk = [[]] * 15行创建一个列表,其中有15次相同的空列表。

您想使用列表推导:

blokk = [[] for _ in range(15)]


自己试试吧:

>>> blokk = [[]]*15
>>> blokk
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], []]
>>> blokk[0].append(1)
>>> blokk
[[1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
>>> blokk = [[] for _ in range(15)]
>>> blokk
[[], [], [], [], [], [], [], [], [], [], [], [], [], [], []]
>>> blokk[0].append(1)
>>> blokk
[[1], [], [], [], [], [], [], [], [], [], [], [], [], [], []]

关于python - 如何在列表中的列表中添加不同的元素? Python 3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12800319/

10-11 14:14