我有一长串列表,其中列表中的第一个元素是一个长字符串,我需要截断为一个较短的字符串。
我目前正在两次迭代列表。一旦缩短第一个元素,第二个元素为输出格式化:
for i in range(len(prefData)):
temp = prefData[i][0]
temp = temp[:40]
prefData[i][0] = temp
for row in prefData:
print('formatting strings'.format(*row))
有没有办法只迭代列表一次并在第二次迭代中包含截断步骤?我想更改列表元素,而不是截断输出。
答案 0 :(得分:2)
row
是一个列表,您无需额外的索引步骤或临时变量
for row in prefData:
row[0] = row[0][:40]
print('formatting strings {} {} {}'.format(*row))
答案 1 :(得分:0)
For循环是一个非常缓慢的过程。您可以通过重新格式化prefData
来快速截断每一行。
这样的事情:
prefData = [ [r[0][:40]]+r[1:] for r in prefData]
它通常比循环更快。