python - 如何以某种 pythonic 方式将列表中的所有字符串截断为相同长度?

标签 python

假设我们有一个列表,例如:

g = ["123456789123456789123456", 
     "1234567894678945678978998879879898798797", 
     "6546546564656565656565655656565655656"]

我需要每个元素的前十二个字符:

["123456789123", 
 "123456789467", 
 "654654656465"]

好的,我可以在 for 循环中构建第二个列表,如下所示:

g2 = []
for elem in g:
    g2.append(elem[:12])

但我很确定还有更好的方法,但现在还想不出来。有什么想法吗?

最佳答案

使用列表理解:

g2 = [elem[:12] for elem in g]

如果您更喜欢就地编辑 g,请使用带有生成器表达式的切片赋值语法:

g[:] = (elem[:12] for elem in g)

演示:

>>> g = ['abc', 'defg', 'lolololol']
>>> g[:] = (elem[:2] for elem in g)
>>> g
['ab', 'de', 'lo']

关于python - 如何以某种 pythonic 方式将列表中的所有字符串截断为相同长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11326737/

相关文章:

python - python中浮点精度的最佳实践

python - 如何使用 python 测试文件夹中的新文件

python - 使用来自列表的键和来自另一个列表的列表的值创建字典

python - 当值缺失时,将列值添加到另一列中的数组中

python - Dataframe 列中所有类别的通用 ID - Python

python - 是否可以在没有训练操作的情况下可视化 tensorflow 图?

python - 如何通过python创建一个url快捷方式

Python Selenium 和验证码

python - 如何使用 django-mailer 定时发送电子邮件

python - 如何在fcm-django的FCMDevice上注册一个设备?