根据字符串长度填充列表的空列表

2024-09-29 07:18:59 发布

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

假设我有下面的单词列表

words = ["arid", "dash", "drain", "thread"]

以及列表的空列表:

a=[[]]*7

我想把这些单词放在列表中,这样每个单词的长度就决定了它们所附加到的列表的位置

例如,因为“干旱”的长度为4,它将继续:

a=[[],[],[],[],["arid"],[],[]]

“dash”的长度也为4,因此它将继续:

a=[[],[],[],[],["arid", "dash"],[],[]]

但“排水管”的长度为5,因此它将继续:

a=[[],[],[],[],["arid", "dash"],["brain"],[]]

“线程”的长度是6,所以它会继续:

a=[[],[],[],[],["arid", "dash"],["brain"],["thread"]]

我尝试了以下代码:

A = [[]]*7 #7 is len(thread)+1. it's not hard coded in my implementation

for word in words:
    size=len(word)
    A[size].append(word)
print(A)

当我运行此命令时,我得到:

>>[['arid', 'dash', 'drain', 'thread'], ['arid', 'dash', 'drain', 'thread'], ['arid', 'dash', 'drain', 'thread'], ['arid', 'dash', 'drain', 'thread'], ['arid', 'dash', 'drain', 'thread'], ['arid', 'dash', 'drain', 'thread'], ['arid', 'dash', 'drain', 'thread']]

这毫无意义。每次我追加时,单词都会追加到列表列表中的每个列表中。我做错了什么?有人能帮忙吗


Tags: 代码in列表sizelen单词线程thread
1条回答
网友
1楼 · 发布于 2024-09-29 07:18:59

您需要更改为A = [[]for _ in range(7)]。您可以尝试以下操作:

A = [[]for _ in range(7)] #7 is len(thread)+1. it's not hard coded in my implementation

for word in words:
    size=len(word)
    A[size].append(word)
print(A)

输出:

[[], [], [], [], ['arid', 'dash'], ['drain'], ['thread']]

相关问题 更多 >