列表中的函数,Python

时间:2015-07-25 21:59:48

标签: python

我想创建一个函数,我输入一个List(带小写和大写字符串),然后该函数将任何大写字符串设置为小写并再次输出列表。我尝试使用列表理解,但不确定如何为此分配变量/是否有更简单的方法来执行此操作?

def lowerlist(inputList):
    [x.lower() for x in inputList]
    print inputList 

inputList = ["Red", "green", "Blue"]
lowerList(inputList)

4 个答案:

答案 0 :(得分:1)

只需return您的列表补偿,使用inputList[:] = lower_list(input_list)使用更新的返回值更新原始列表:

def lower_list(inp):
    return [x.lower() for x in inp]


input_list = ["Red", "green", "Blue"]

input_list[:] =  lower_list(input_list)

或使用地图:

input_list = ["Red", "green", "Blue"]
input_list[:] =  map(str.lower,input_list)

[:]语法意味着您实际更新原始列表/对象中的值,您还可以返回生成器表达式:

 def lower_list(inp):
    return (x.lower() for x in inp)

并以同样的方式使用它:

 input_list = ["Red", "green", "Blue"]
 input_list[:] =  lower_list(input_list)

答案 1 :(得分:0)

您只需返回新创建的列表:

def lowerlist(inputList):
    return [x.lower() for x in inputList]

inputList = ["Red", "green", "Blue"]
resultList = lowerlist(inputList)

顺便说一句,列表理解创建一个新列表,它不会就地更改列表,所以如果你做了类似的事情:

[x.lower() for x in inputList]

您没有修改inputList,而是创建新列表(然后您可以返回此列表并分配它)

答案 2 :(得分:0)

除了列表理解不会改变列表(至少从python 2.7开始),所以你需要:

 print "{0}, ".format([x.lower() for x in inputList])

答案 3 :(得分:0)

列表理解返回一个列表,如

lowercaseStrings = [x.lower() for x in inputList]

您迭代的列表保持不变。所以inputList仍然包含小写和大写字符串的混合。

要返回小写字符串列表,以下内容将起作用(正如其他答案已经说明的那样)

def lowerlist(inputList):
    return [x.lower() for x in inputList]