Python Forum
How to change the datatype of list elements?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to change the datatype of list elements?
#9
(Aug-23-2022, 05:05 PM)deanhystad Wrote: Why would "marks" be strings when you want them to be int? Should the change be upstream?

If you do have a list of str and you want to convert it to a list of int, you might need check for errors. Depending on what action you need to take when converting the str to an int raises a Value error, map() and list comprehensions might not be an option. You may have no other option than looping through the values.
mport numpy as np

marks = ["50", "60.25", "70.75", "spam", "9.25E2"]

for index, mark in enumerate(marks):
    try:
        value = int(mark)
    except ValueError:
        # Cannot convert mark from str to int.  Try converting
        # to float and rounding.
        try:
            value = round(float(mark))
        except ValueError:
            # mark cannot be converted to a number
            value = np.NaN
    marks[index] = value

print(marks)
Output:
[50, 60, 71, nan, 925]
The code converts everything it can to an int, but this would be the wrong place to do the conversion. The correct place to do the conversion is where the data is received. If "marks" is entered using input(), the input strings should be immediately converted to int. If the conversion fails, the user should be prompted to enter correct values.

If the input is received from another system (web scraping, database query, API call), the conversion should happen immediately, and invalid data reported (logging, error trace). It is a lot easier to track down errors if they are reported when they occur instead of when they cause the program to crash.

I'm sorry, I forgot to mention that I used the input() funtion
Reply


Messages In This Thread
RE: How to change the datatype of list elements? - by mHosseinDS86 - Aug-24-2022, 04:57 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  unable to remove all elements from list based on a condition sg_python 3 1,695 Jan-27-2024, 04:03 PM
Last Post: deanhystad
Question mypy unable to analyse types of tuple elements in a list comprehension tomciodev 1 1,627 Oct-17-2023, 09:46 AM
Last Post: tomciodev
  Change font in a list or tuple apffal 4 3,737 Jun-16-2023, 02:55 AM
Last Post: schriftartenio
  Checking if a string contains all or any elements of a list k1llcod3 1 4,887 Jan-29-2023, 04:34 AM
Last Post: deanhystad
  find some word in text list file and a bit change to them RolanRoll 3 2,390 Jun-27-2022, 01:36 AM
Last Post: RolanRoll
  ValueError: Length mismatch: Expected axis has 8 elements, new values have 1 elements ilknurg 1 8,148 May-17-2022, 11:38 AM
Last Post: Larz60+
Question Change elements of array based on position of input data Cola_Reb 6 3,453 May-13-2022, 12:57 PM
Last Post: Cola_Reb
  datatype check arkiboys 1 1,832 Jan-18-2022, 12:46 PM
Last Post: ndc85430
  Change a list to integer so I can use IF statement buckssg 3 3,180 Sep-21-2021, 02:58 AM
Last Post: bowlofred
  change csv file into adjency list ainisyarifaah 0 1,882 Sep-21-2021, 02:49 AM
Last Post: ainisyarifaah

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020