Python 让用户决定对数字列表应用什么操作

Python 让用户决定对数字列表应用什么操作,python,Python,我最近学习了Python,并想知道如何才能做到以下几点。假设我们有一个包含3个数字的列表: x = [1, 2, 3] 然后,我们询问用户如何处理这些数字: whatdo = raw_input('> ') 例如,用户输入“+2”。现在,我如何将“+2”应用于列表中的所有元素?更通用的可能性是让用户指定一个函数,并使用Python语句将字符串转换为实际函数 import operator as oper operations = { '+': oper.add, '-

我最近学习了Python,并想知道如何才能做到以下几点。假设我们有一个包含3个数字的列表:

x = [1, 2, 3]
然后,我们询问用户如何处理这些数字:

whatdo = raw_input('> ')

例如,用户输入“+2”。现在,我如何将“+2”应用于列表中的所有元素?

更通用的可能性是让用户指定一个函数,并使用Python语句将字符串转换为实际函数

import operator as oper

operations = {
    '+': oper.add,
    '-': oper.sub,
    '*': oper.mul
}

numbers = [1, 2, 3]

op, num1 = raw_input("> ").split()
num1 = int(num1)
op = operations[op]

y = [op(num1, num2) for num2 in numbers]
print y

--output:--
> * 30
[30, 60, 90]
numbers = [1, 2, 3]
function = raw_input('> Please specify f(x): ')
f = eval("lambda x: " + function)
print map(f, numbers)
例如:

> Please specify f(x): (x+1)**2
[4, 9, 16]

当然,这允许用户指定各种无效甚至恶意的功能,因此应小心处理。

@Alenta Urentio,看一看。标题是怎么回事?这与你的问题无关…