2024-05-16 08:58:02 发布
网友
我有一个列表如下:
['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6']
我正在打印:
Blake Bolt De Grasse Gatlin Simbine Youssef Meite
如何编写处理此场景的列表?我试着使用split和索引,但是我所用的一切都不起作用。你知道吗
split
假设所有值都保持该模式,则拆分并重新联接,忽略拆分数组中的最后一个值:
l = ['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] for x in l: print(' '.join(x.split()[:-1]))
否则,请使用regex删除数字:
import re l = ['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] for x in l: print(re.sub(' \d+', '', x))
试试这个:
l = ['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] for i in l: print(i[:-2])
索引就足以解决您的问题。你知道吗
根据@Jean François的评论,如果你想删除最后一个空格前的所有字符,你可以这样做:
l = ['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] for i in l: print(i[:-i[::-1].index(' ')-1])
列表理解对于打印内容(或任何不需要返回值的操作)是无用的。你知道吗
在您的例子中,可以在循环中使用str.rpartition,只打印字符串中最右边空格的左边:
str.rpartition
l =['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] for s in l: print(s.rpartition(" ")[0])
只需从列表中去掉最后一个数字就可以很好地使用listcomp:
newl = [s.rpartition(" ")[0] for s in l]
假设所有值都保持该模式,则拆分并重新联接,忽略拆分数组中的最后一个值:
否则,请使用regex删除数字:
试试这个:
索引就足以解决您的问题。你知道吗
根据@Jean François的评论,如果你想删除最后一个空格前的所有字符,你可以这样做:
列表理解对于打印内容(或任何不需要返回值的操作)是无用的。你知道吗
在您的例子中,可以在循环中使用
str.rpartition
,只打印字符串中最右边空格的左边:只需从列表中去掉最后一个数字就可以很好地使用listcomp:
相关问题 更多 >
编程相关推荐