Python 如何打印列表中的部分项目?
我有一个如下列表:Python 如何打印列表中的部分项目?,python,Python,我有一个如下列表: ['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] 我正在尝试打印以下内容: 布莱克 插销 格拉斯 加特林 辛比内 优素福·梅特 我如何着手编写一个处理此场景的列表?我尝试使用split和索引,但没有任何效果。假设所有值都保持该模式,则拆分并返回,忽略拆分数组中的最后一个值: l = ['Blake 4', 'Bolt 1', 'De Grasse 3', 'Ga
['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6']
我正在尝试打印以下内容:
布莱克
插销
格拉斯
加特林
辛比内
优素福·梅特
我如何着手编写一个处理此场景的列表?我尝试使用
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]))
否则,请使用正则表达式消除数字:
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))
列表理解对于打印内容(或任何不需要返回值的操作)是无用的 在本例中,您可以在循环中使用
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]
试试这个:
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])
哇,我真不敢相信蝙蝠会寻求帮助:我对编码还不熟悉,正在努力掌握窍门:3什么能保证值不会超过9?@Jean-Françoisfare绝对正确。但是我们没有足够的数据信息。我的答案只是基于他提供的样本清单。