如何以某种Python方式将列表中的所有字符串截断为相同的长度?
假设我们有一个列表,例如:如何以某种Python方式将列表中的所有字符串截断为相同的长度?,python,Python,假设我们有一个列表,例如: g = ["123456789123456789123456", "1234567894678945678978998879879898798797", "6546546564656565656565655656565655656"] 我需要每个元素的前12个字符: ["123456789123", "123456789467", "654654656465"] 好的,我可以在for循环中建立第二个列表,类似这样: g2 = []
g = ["123456789123456789123456",
"1234567894678945678978998879879898798797",
"6546546564656565656565655656565655656"]
我需要每个元素的前12个字符:
["123456789123",
"123456789467",
"654654656465"]
好的,我可以在for循环中建立第二个列表,类似这样:
g2 = []
for elem in g:
g2.append(elem[:12])
但我很确定还有更好的方法,现在还不能找到。有什么想法吗?使用列表理解:
g2 = [elem[:12] for elem in g]
[elem[:12] for elem in g]
如果希望就地编辑g
,请将切片分配语法与生成器表达式一起使用:
g[:] = (elem[:12] for elem in g)
演示:
使用列表理解:
g2 = [elem[:12] for elem in g]
[elem[:12] for elem in g]
另一个选项是使用
映射(…)
:
b = map(lambda x: x[:9],g)
值得注意的是,如果字符串短于2个字符,它仍然可以在不抛出“indexer”的情况下工作。您只需保留原始字符串。