<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alex</title>
    <description>The latest articles on DEV Community by Alex (@moijes12).</description>
    <link>https://dev.to/moijes12</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F188656%2Ff27da622-05eb-442c-ac0a-cf9396485eb1.jpeg</url>
      <title>DEV Community: Alex</title>
      <link>https://dev.to/moijes12</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/moijes12"/>
    <language>en</language>
    <item>
      <title>Pythonic Way to Solve Prefix Sum</title>
      <dc:creator>Alex</dc:creator>
      <pubDate>Thu, 12 Mar 2026 10:05:10 +0000</pubDate>
      <link>https://dev.to/moijes12/pythonic-way-to-solve-prefix-sum-427c</link>
      <guid>https://dev.to/moijes12/pythonic-way-to-solve-prefix-sum-427c</guid>
      <description>&lt;h3&gt;
  
  
  Problem
&lt;/h3&gt;

&lt;p&gt;Given an array nums. We define a running sum of an array as &lt;code&gt;runningSum[i] = sum(nums[0]…nums[i])&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Return the running sum of &lt;code&gt;nums&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;Input: &lt;code&gt;nums = [1,2,3,4]&lt;/code&gt;&lt;br&gt;
Output: &lt;code&gt;[1,3,6,10]&lt;/code&gt;&lt;br&gt;
Explanation: Running sum is obtained as follows: &lt;code&gt;[1, 1+2, 1+2+3, 1+2+3+4]&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Pythonic Solution
&lt;/h3&gt;

&lt;p&gt;Use &lt;a href="https://docs.python.org/3/library/itertools.html#itertools.accumulate" rel="noopener noreferrer"&gt;itertools.accumulate&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;itertools&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;accumulate&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Solution&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;runningSum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nums&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;accumulate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nums&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Time Complexity: &lt;code&gt;O(N)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Space Complexity: &lt;code&gt;O(1)&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Result: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory: Beats 94.67%&lt;/li&gt;
&lt;li&gt;Runtime: Beats 100%&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>dsa</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>Converting an aware datetime object from one timezone to another in python</title>
      <dc:creator>Alex</dc:creator>
      <pubDate>Tue, 15 Oct 2019 12:13:25 +0000</pubDate>
      <link>https://dev.to/moijes12/converting-an-aware-datetime-object-from-one-timezone-to-another-in-python-173f</link>
      <guid>https://dev.to/moijes12/converting-an-aware-datetime-object-from-one-timezone-to-another-in-python-173f</guid>
      <description>&lt;h2&gt;
  
  
  Problem
&lt;/h2&gt;

&lt;p&gt;I recently ran into a beginner problem at work where I had to write a utility method that would receive a timestamp and the timezone of the timestamp and convert it into a human readable form for UTC timezone. Now, this looked straightforward except that I hadn't worked with the datetime library before. So after much searching, I came across the very useful &lt;code&gt;datetime.astimezone()&lt;/code&gt; method which helped solve the problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  About the &lt;code&gt;datetime.astimezone(tz=None)&lt;/code&gt; method
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;astimezone(tz=None)&lt;/code&gt; takes in a &lt;strong&gt;datetime&lt;/strong&gt; object and returns a new datetime object with the time set to the equivalent time in the &lt;strong&gt;datetime.tzinfo&lt;/strong&gt; attribute &lt;strong&gt;tz&lt;/strong&gt;. If no &lt;strong&gt;tz&lt;/strong&gt; object is not provided, it defaults to &lt;strong&gt;UTC&lt;/strong&gt; timezone.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; from datetime import datetime
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; from pytz import timezone

&lt;span class="c"&gt;# Convert the local time in London to the local time in Sydney&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; datetime.now&lt;span class="o"&gt;(&lt;/span&gt;timezone&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Europe/London'&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;.astimezone&lt;span class="o"&gt;(&lt;/span&gt;timezone&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Australia/Sydney'&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;
datetime.datetime&lt;span class="o"&gt;(&lt;/span&gt;2019, 10, 15, 22, 48, 4, 449019, &lt;span class="nv"&gt;tzinfo&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;DstTzInfo &lt;span class="s1"&gt;'Australia/Sydney'&lt;/span&gt; AEDT+11:00:00 DST&amp;gt;&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;# Convert the time in London to it's equivalent in UTC&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; datetime.now&lt;span class="o"&gt;(&lt;/span&gt;timezone&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Europe/London'&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;.astimezone&lt;span class="o"&gt;()&lt;/span&gt;
datetime.datetime&lt;span class="o"&gt;(&lt;/span&gt;2019, 10, 15, 11, 54, 58, 952388, &lt;span class="nv"&gt;tzinfo&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;datetime.timezone&lt;span class="o"&gt;(&lt;/span&gt;datetime.timedelta&lt;span class="o"&gt;(&lt;/span&gt;0&lt;span class="o"&gt;)&lt;/span&gt;, &lt;span class="s1"&gt;'UTC'&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Final Solution to my problem
&lt;/h2&gt;

&lt;p&gt;Below is the solution I came up with which made use of the &lt;a href="https://docs.python.org/3/library/datetime.html" rel="noopener noreferrer"&gt;datetime.astimezone()&lt;/a&gt; method in the datetime library. Note that the code has been simplified to allow the reader to grasp it more easily.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pytz&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;timezone&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;change_timezone_of_datetime_object&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;date_time_object&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;new_timezone_name&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Return the *date_time_object* with it&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s timezone changed to *new_timezone_name*

    :param date_time_object: The datetime object whose timezone is to be changed
    :type date_time_object: datetime
    :param new_timezone_name: The name of the timezone to which the *date_time_object* is to be changed to
    :type new_timezone_name: str
    :rtype: datetime
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="c1"&gt;# Create a pytz.timezone object for the new_timezone
&lt;/span&gt;    &lt;span class="n"&gt;new_timezone_object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;timezone&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;new_timezone_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# Update the timezone of the datetime object
&lt;/span&gt;    &lt;span class="n"&gt;date_time_object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;date_time_object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;astimezone&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;new_timezone_object&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# Return the converted datetime object
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;date_time_object&lt;/span&gt;

&lt;span class="c1"&gt;# Testing
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;dtobj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;timezone&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;UTC&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;change_timezone_of_datetime_object&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dtobj&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Europe/London&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2019&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;56&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;220369&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tzinfo&lt;/span&gt;&lt;span class="o"&gt;=&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;DstTzInfo&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Europe/London&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt; &lt;span class="n"&gt;BST&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="n"&gt;DST&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.python.org/3/library/datetime.html" rel="noopener noreferrer"&gt;Python datetime library documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@eleroy/10-things-you-need-to-know-about-date-and-time-in-python-with-datetime-pytz-dateutil-timedelta-309bfbafb3f7" rel="noopener noreferrer"&gt;10 things you need to know about Date and Time in Python with datetime, pytz, dateutil &amp;amp; timedelta&lt;/a&gt; - Example 4 turned out to be very useful. Thanks &lt;a href="https://medium.com/@eleroy" rel="noopener noreferrer"&gt;@eleroy&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>datetime</category>
      <category>pytz</category>
    </item>
  </channel>
</rss>
