我想创建一个函数,我输入一个List(带小写和大写字符串),然后该函数将任何大写字符串设置为小写并再次输出列表。我尝试使用列表理解,但不确定如何为此分配变量/是否有更简单的方法来执行此操作?
def lowerlist(inputList):
[x.lower() for x in inputList]
print inputList
inputList = ["Red", "green", "Blue"]
lowerList(inputList)
答案 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]