Python split and get last element

Split a string and get the last element in Python #

Use the str.rsplit() method with maxsplit set to 1 to split a string and get the last element. The rsplit() method splits from the right and will only perform a single split when maxsplit is set to 1.

Copied!

my_str = 'one,two,three,four' last = my_str.rsplit(',', 1)[-1] print(last) # 👉️ 'four'

We used the rsplit() method to split the string from the right.

The str.rsplit method returns a list of the words in the string using the provided separator as the delimiter string.

Copied!

my_str = 'one two three' print(my_str.rsplit(' ')) # 👉️ ['one', 'two', 'three'] print(my_str.rsplit(' ', 1)) # 👉️ ['one two', 'three']

The method takes the following 2 arguments:

NameDescription
separator Split the string into substrings on each occurrence of the separator
maxsplit At most maxsplit splits are done, the rightmost ones (optional)

Except for splitting from the right, rsplit() behaves like split().

When the maxsplit argument is set to 1, at most 1 split is done.

The last step is to access the last element in the list by accessing the list item at index -1.

Copied!

my_str = 'one,two,three,four' last = my_str.rsplit(',', 1)[-1] print(last) # 👉️ 'four'

You can also use the str.split() method in a similar way.

Copied!

my_str = 'one-two-three-four' last = my_str.split('-')[-1] print(last) # 👉️ 'four'

If your string ends with the specific separator, you might get a confusing result.

Copied!

my_str = 'one-two-three-four-' last = my_str.rsplit('-', 1)[-1] # 👇️ ['one-two-three-four', ''] print(my_str.rsplit('-', 1)) print(last) # 👉️ ""

You can use the str.strip() method to remove the leading or trailing separator.

Copied!

my_str = 'one-two-three-four-' last = my_str.strip('-').rsplit('-', 1)[-1] print(last) # 👉️ "four"

We used the str.strip() method to remove any leading or trailing hyphens from the string before calling the rsplit() method.

I use pandas and I have data and the data look like this

FirstName LastName StudentID
FirstName2 LastName2 StudentID2

Then I split it based on 'space' using str.split()

So the data will look like this in DataFrame

[[FirstName, LastName, StudentID],
[FirstName2, LastName2, StudentID2]]

How to take the StudentID for every students only and save it in new column?

Python split and get last element

ZygD

16.5k37 gold badges68 silver badges88 bronze badges

asked Dec 10, 2018 at 23:55

Python split and get last element

Try the below solution:

item["x"]["y"].split(' ')[-1]

0buz

3,3832 gold badges7 silver badges26 bronze badges

answered Mar 24, 2020 at 11:06

Python split and get last element

Use a list comprehension to take the last element of each of the split strings:

ids = [val[-1] for val in your_string.split()]

answered Dec 10, 2018 at 23:57

Python split and get last element

TimTim

2,6301 gold badge14 silver badges29 bronze badges

1

You could do something like this:

import pandas as pd

data = ['FirstName LastName StudentID',
'FirstName2 LastName2 StudentID2']

df = pd.DataFrame(data=data, columns=['text'])

df['id'] = df.text.apply(lambda x: x.split()[-1])

print(df)

Output

text          id
0     FirstName LastName StudentID   StudentID
1  FirstName2 LastName2 StudentID2  StudentID2

Or, as an alternative:

df['id'] = [x.split()[-1] for x in df.text]
print(df)

Output

text          id
0     FirstName LastName StudentID   StudentID
1  FirstName2 LastName2 StudentID2  StudentID2

answered Dec 10, 2018 at 23:58

Python split and get last element

Dani MesejoDani Mesejo

58.6k6 gold badges45 silver badges68 bronze badges

I thought I would add this simple solution which doesn't use lists or list comprehension to split an existing column/series and store the last item from the split to a new column/series in the DataFrame

import pandas as pd

data = ['FirstName LastName StudentID',
'FirstName2 LastName2 StudentID2']

df = pd.DataFrame(data=data, columns=['text'])

df['id'] = df.text.str.split(" ").str.get(-1)

Output:

index text id

0 FirstName LastName StudentID StudentID

0 FirstName2 LastName2 StudentID2 StudentID2

answered Sep 5, 2021 at 9:07

Using data frame constructor

pd.DataFrame(df.text.str.split(' ').tolist()).iloc[:,0]
Out[15]: 
0     FirstName
1    FirstName2
Name: 0, dtype: object

answered Dec 11, 2018 at 0:00

Python split and get last element

BENYBENY

307k19 gold badges153 silver badges213 bronze badges

0

Why not try a simple list comprehension

students = [
    ["FirstName", "LastName", "StudentID"],
    ["FirstName2", "LastName2", "StudentID2"]
]

print([student[2] for student in students])

which will print

['StudentID', 'StudentID2']

answered Dec 10, 2018 at 23:58

Python split and get last element

finefootfinefoot

8,6477 gold badges47 silver badges85 bronze badges

How do you get the last part of a split in Python?

Use the str. rsplit() method with maxsplit set to 1 to split a string and get the last element. The rsplit() method splits from the right and will only perform a single split when maxsplit is set to 1 .

How do you get the last element after the split?

To split a string and get the last element of the array, call the split() method on the string, passing it the separator as a parameter, and then call the pop() method on the array, e.g. str. split(','). pop() . The pop() method will return the last element from the split string array.

How do you split a string at the last delimiter in Python?

Use the str. rsplit() method with maxsplit set to 1 to split a string on the last occurrence of a delimiter, e.g. my_str. rsplit(',', 1) . The rsplit() method splits from the right, and only performs a single split when maxsplit is set to 1 .

How do you split an element in Python?

The split() method splits a string into a list. You can specify the separator, default separator is any whitespace. Note: When maxsplit is specified, the list will contain the specified number of elements plus one.