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))
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.