Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

use python3 #!/usr/bin/python3 from test import test def sum_exponents(nums, bas

ID: 3758821 • Letter: U

Question

use python3

#!/usr/bin/python3

from test import test


def sum_exponents(nums, base):
'''Given a list of numbers `nums` and an integer `base`, return the sum of
each number times the `base` raised to the power of that number's index.

For example:
sum_exponents([1,2,3], 4) = 1 * 4^0 + 2 * 4^1 + 3 * 4^2 = 57

You can use sum() function to add all numbers in the list.
For example:
sum([1,2,3]) = 6

YOU MUST USE LIST COMPREHENSION.

Keyword arguments:
nums -- a list of numbers
base -- an integer

Return: number
'''
# +++ADD code here+++


def main():
'''Provide some tests for sum_exponents function'''
print('sum_exponents')
test(sum_exponents([1, 2, 3], 4), 57)
test(sum_exponents([], 3), 0)
test(sum_exponents([1, 0, 1], 2), 5)
test(sum_exponents([1, 3, 5], 8), 345)
test(sum_exponents([2, 7, 1, 0, 9, 10], 16), 11075954)


if __name__ == '__main__':
main()

Explanation / Answer

def sum_exponents(nums, base):

    #For example:
    #    sum_exponents([1,2,3], 4) = 1 * 4^0 + 2 * 4^1 + 3 * 4^2 = 57

    rlist = [x * (base ** i) for x in nums for i in range(len(nums)) if nums[i] == x]
    return sum(rlist)
  

#print(sum_exponents([1,2,3],4))