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)]