假设我们有一个列表,例如:
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/