Python 将列表中的每个元素作为参数传递给函数

Python 将列表中的每个元素作为参数传递给函数,python,Python,我有一张单子 try_list = ["[('aaaa', 34), ('bbbb', 1), ('cccc', 1)]", "[('dddd', 4), ('eeee', 1)]"] “”中的每个条目都是列表的一个元素 当我说 for i in try_list: print i 我得到了各个元素 [('aaaa', 34), ('bbbb', 1), ('cccc', 1)] [('dddd', 4), ('eeee', 1)] 但如果我试图将每个个体传递给函数(比如func

我有一张单子

try_list = ["[('aaaa', 34), ('bbbb', 1), ('cccc', 1)]", "[('dddd', 4), ('eeee', 1)]"]
“”中的每个条目都是列表的一个元素

当我说

for i in try_list:
    print i 
我得到了各个元素

[('aaaa', 34), ('bbbb', 1), ('cccc', 1)]
[('dddd', 4), ('eeee', 1)]
但如果我试图将每个个体传递给函数(比如func),则

我犯了一个错误

如果我用每个元素逐个测试函数func,它工作得很好,所以func很好。因此,错误在于将列表作为参数传递,一次传递一个参数。正确的做法是什么

这里是func:

def func(my_list):
    ans = []
    for i,name in enumerate(my_list):
        print name[0],name[1]
        ans.append(name)
    return ans
如果我说

func([('aaaa', 34), ('bbbb', 1), ('cccc', 1)])
我得到了正确的输出

aaaa 34

bbbb 1

cccc 1

[('aaaa', 34), ('bbbb', 1), ('cccc', 1)]
但如果我说

for i in try_list:
    item = func(i)
我得到了错误

回溯(最近一次呼叫最后一次): 文件“”,第2行,在 文件“”,第4行,在func中 索引器:字符串索引超出范围

非常(un)幸运的是,列表
[('aaaa',34)]
\uuuu repr\uuu
的返回值与字符串
“[('aaaa',34)]”相同

这就是为什么要打印出类似列表的内容。但是你拥有的不是列表列表而是字符串列表


在将字符串作为参数传递给函数之前,可能需要将其转换为列表


您可以查看是否需要安全地将字符串转换为列表。

这需要一个简单的步骤。什么是
func
?你的错误是什么?你正在运行的确切代码是什么。我已经用完整的代码更新了我的查询,这给我带来了麻烦
for i in try_list:
    item = func(i)
>>> print("[('aaaa', 34)]")
[('aaaa', 34)]
>>>
>>> print([('aaaa', 34)])
[('aaaa', 34)]