python - 将多条正文线转换为列表理解
问题描述
我有以下代码要编写为列表理解:
word = "in_str"
listc=[]
for i in range(len(list(word))):
x = []
x.append(i+1)
x.append(list(word)[i])
listc.append(x)
print(listc, end="\n")
身体多条纹路怎么治疗?基本上,我想将我"in_str"
的转换为以下内容:
[[1, 'i'], [2, 'n'], [3, '_'], [4, 's'], [5, 't'], [6, 'r']]
解决方案
身体多条纹路怎么治疗
通过简化表达式;您不需要多个语句来构建嵌套列表:
[i + 1, list(word)[i]]
x = []
为您提供与声明和附加两个表达式的结果相同的结果。
这将使列表理解
[
[i + 1, list(word)[i]]
for i in range(len(list(word)))
]
接下来,您不需要调用list(word)
来获取字符串的长度或处理单个字符。字符串已经是序列,所以len(word)
也word[i]
可以工作:
[
[i + 1, word[i]]
for i in range(len(word))
]
接下来,如果您使用该enumerate()
函数,您可以生成一个运行索引来替换range()
循环,并且word
无需索引即可访问单个字符;1
您可以使用第二个参数来启动运行索引enumerate()
(默认是从 开始0
):
[[i, char] for i, char in enumerate(word, 1)]
如果您不必为每一对设置一个列表,只需直接在循环中使用并获取元enumerate(word, 1)
组:
list(enumerate(word, 1))
演示:
>>> word = "in_str"
>>> list(enumerate(word, 1))
[(1, 'i'), (2, 'n'), (3, '_'), (4, 's'), (5, 't'), (6, 'r')]
>>> [[i, char] for i, char in enumerate(word, 1)]
[[1, 'i'], [2, 'n'], [3, '_'], [4, 's'], [5, 't'], [6, 'r']]
推荐阅读
- android - 使用 ADB 获取安卓游戏的 FPS
- node.js - 分段错误(核心转储)错误 139(Webpack 5.11.1)
- http-live-streaming - HLS FLAC 音频流
- c - 如何在c中添加布尔值?
- angular - 在角度引导日期格式化程序服务中找不到模块问题
- c++ - 使用 Stack 和 C++ 语言显示老鼠迷宫最终路径坐标
- python - 如何使用 SpaCy 更改自定义 NER 模型再训练的训练数据格式?
- kernel - 为什么 Linux 内核代码是 100Hz 但显示器刷新率可以是 60Hz
- javascript - 使用 Nodejs 构建推荐系统
- javascript - 如何在 p5js 中设置障碍,但您只能通过特定的门进入