最近我一直在使用一些Python映像库,并且在从字符串的最后三行提取文本时遇到了问题。
让我们说我有一个字符串
a = '''
Human
Dog
Cat
Banana
Apple
Orange'''
我想将这些内容转换为2个不同的列表,其中一个具有字符串的最后三行,另一个具有字符串的所有其余行。
first_items = ['Human', 'Dog', 'Cat']
last_items = ['Banana', 'Apple', 'Orange']
如何在Python中做到这一点?
答案 0 :(得分:3)
首先,您需要按行收集数据,以过滤出空行:
lines = list(filter(None, a.splitlines()))
然后,您可以使用Python的list slicing:
first = lines[:-3]
last = lines[-3:]
答案 1 :(得分:0)
a = '''Human
Dog
Cat
Banana
Apple
Orange'''
full_list = a.split('\n')
list1 = full_list[:-3]
last_items = full_list[-3:]
输出:
In [6]: list1
Out[6]: ['Human', 'Dog', 'Cat']
In [7]: last_items
Out[7]: ['Banana', 'Apple', 'Orange']
答案 2 :(得分:0)
您可以将split
与开头的strip
一起使用,以删除第一个\n
。然后使用其尺寸对列表进行切片,以使其可扩展到其他情况:
l = a.strip().split('\n')
l1, l2 = l[:len(l)//2], l[len(l)//2:]
print(l1)
['Human', 'Dog', 'Cat']
print(l2)
['Banana', 'Apple', 'Orange']
答案 3 :(得分:0)
a = '''
Human
Dog
Cat
Banana
Apple
Orange'''
a
是一个字符串,因此我们应通过用换行符\n
进行拆分将其转换为列表,并通过从第一项中获取列表来修剪前导\n
而不是第0个项目
full_list = a.split('\n')[1:]
它将给出['Human', 'Dog', 'Cat', 'Banana', 'Apple', 'Orange']
现在可以使用[:-3]
提取前三名,而使用[-3:]
提取后三名
list1 = full_list[:3]
last_items = full_list[-3:]
希望有帮助。