如何将函数写入for循环

时间:2015-10-09 19:27:57

标签: python python-3.2

如何使用适当的python语法回答这个问题循环问题:

def int_all_2(str_list):
    '''(list of str) -> NoneType
    Replace every str element of str_list with its corresponding
    int version.
    For example,
    >>> sl = ['100', '222', '2', '34']
    >>> int_all_2(sl)
    >>> sl
    [100, 222, 2, 34]
    '''

会是这样的吗?

l = []
  for x in str_list:
    l.append (int_all_2(x))
    return l

2 个答案:

答案 0 :(得分:1)

如果您想将列表中的每个元素转换为整数然后返回一个新列表,您可以使用 map 函数:

def strs2ints(l):
   return map(int,l)

您还应该注意,函数strs2ints 不会更改数组l的内容。

如果你想改变我不推荐的原始数组l的内容(你应该更喜欢使用" clean"函数与带副作用的函数),你可以尝试以下代码:

def strs2ints(l):
    for i in range(len(l)):
       l[i] = int(l[i])

答案 1 :(得分:0)

假设你的列表只包含数字整数的字符串表示,你甚至不需要一个函数,只需要列表理解:

l = [int(itm) for itm in str_list]

如果你想忽略可能的字符串:

l = [int(itm) for itm in str_list if not itm.isalpha]

或者,如果你需要一个函数:

def int_all(str_list):
    return [int(itm) for itm in str_list]