python - 嵌套列表循环索引
问题描述
我正在尝试根据单词列表创建字符列表,即
["BOARD", "GAME"] -> [["B","O"...], ["G","A","M"...]
据我了解,我有一个 IndexError,因为我的初始板列表不包含预定数量的列表。
有没有办法根据板子中的对象数量在板子列表中创建一个新列表?
我不知道我是否清楚。
谢谢你。
board=["BOARD", "GAME"]
boardlist=[[]]
i=0
for word in board:
for char in word:
boardlist[i].append(char)
i=i+1
print(boardlist)
IndexError:列表索引超出范围
解决方案
请注意,这可以通过获取list
中的每个字符串的a 来以更简单的方式完成board
,因为列表构造函数会将输入可迭代(在本例中为字符串)转换为其中的子字符串列表:
l = ["BOARD", "GAME"]
[list(i) for i in l]
# [['B', 'O', 'A', 'R', 'D'], ['G', 'A', 'M', 'E']]
让我们也找到解决您当前方法的方法。首先boardlist=[[]]
不是初始化列表的有效方法(检查它返回的内容)。您可能想查看这篇文章。此外,您不必enumerate
为此增加一个计数器:
boardlist = [[] for _ in range(len(board))]
for i, word in enumerate(board):
for char in word:
boardlist[i].extend(char)
print(boardlist)
# [['B', 'O', 'A', 'R', 'D'], ['G', 'A', 'M', 'E']]
推荐阅读
- python - 如何在度数python数学模块中计算正弦(或任何其他三角函数)?
- git - 不小心设置了错误的上游分支
- sql - 如何为同一张表上的 SQL 左连接显示一次相似的行
- python - 在 python 中,我可以以某种方式使用 # %% 作为 VS Code 大纲中的顶层层次结构吗?
- python - 为什么我的方程没有正确评估?
- angular - 如何使 Angular 应用程序在 IE 11 上运行?尝试实现时出错
- android - Android Google Map API 空白地图
- python - 在相关下拉列表中更新期间无法自动填充数据
- yii2 - 在yii2中将日期转换为时间戳?
- ldap - ldap_simple_bind:无效的凭据