问题是写一个名为double_it()的函数应该遍历列表并将原始列表中的每个数字元素乘以2并重新表示整数,表示加倍的元素数。
这就是我所拥有的.....输出只是重复列表2次,但没有乘以值。
def main():
original_list = [input("Enter a list of numbers: ")]
double_it(original_list)
def double_it(new_list):
for index in range(len(new_list)):
new_list[index] *= 2
print new_list
main()
答案 0 :(得分:4)
处理输入时,您的问题看起来像是一个错误。 raw_input函数通常应优先于输入。
我将遵循此Stack Overflow问题: https://stackoverflow.com/questions/4663306/how-can-i-get-a-list-as-input-from-the-user-in-python
至于加倍部分,有几种方法可以做到这一点,可能值得了解,以充分探索python。
>>> originalList = [1, 2, 3, 4, 5]
>>> newList = []
>>> for item in originalList:
... newList.append(item*2)
...
>>> print(newList)
[2, 4, 6, 8, 10]
>>> originalList = [1, 2, 3, 4, 5]
>>> newList = [item*2 for item in originalList]
>>> print(newList)
[2, 4, 6, 8, 10]
>>> def double(x): return 2*x
...
>>> originalList = [1, 2, 3, 4, 5]
>>> newList = list(map(double, originalList))
>>> print(newList)
[2, 4, 6, 8, 10]
围绕这些东西的python文档都非常好,并且是一个很好的学习资源。
答案 1 :(得分:2)
您的double_it()
方法正常,只需修改此行
original_list = [input("Enter a list of numbers: ")]
到
original_list = input("Enter a list of numbers: ")
为什么?因为input()
会评估您输入的list
列表,因此您可以将其作为列表使用,尝试打印类型< /强>:
a = input("Enter a list of numbers: ")
print type(a)
Enter a list of numbers: [1,2,3]
<type 'list'>