将函数应用于嵌套列表时出现问题?

时间:2017-03-07 06:00:39

标签: python python-3.x data-structures python-requests nested-lists

我有以下列表:

lis = ['hi how are you', 'pretty good', 'lore lipsum dolor done', 'done lipsum dolor', 'lipsum dolor done', 'lipsum lore done', 'greetings']

以下函数,即使用请求库调用API:

def my_req(text):

    payload = {'txt': text, 'param1': param1, 
    'param2': param2, 'param3': param3, 'param4': param4}

    r = requests.get('http://api.exmaple.com', params=payload, stream = True)
   try:
     json_data = json.dumps(r.json())
   except JSONDecodeError:
     np.nan

   data = yaml.load(json_data)
   foo(data['index'])
   return foos_list

我想将该函数应用于lis的每个元素。因此,我尝试了这个:

在:

lis = [my_req(item) for item in [lis]]

2 个答案:

答案 0 :(得分:0)

试试这个:

for i in range(len(lis)):
    lis[i] = [my_req(item) for item in lis[i][0].split()]

答案 1 :(得分:0)

根据您的问题描述和示例数据,您的输入是一个字符串列表列表,其中每个子列表的长度为1,您需要这样:

[my_req(item[0]) for item in lis]

这将返回元组列表的列表。如果要展平它,请使用itertools

list(itertools.chain.from_iterable(my_req(item[0]) for item in lis))