[英]List Comprehensions in Functions, Python
我想创建一个函数,在其中输入一个列表(带有小写和大写字符串),然后该函数将使所有大写字符串变为小写并再次输出列表。 我尝试使用列表理解,但是不确定是否有更简单的方法可以将变量分配给this /?
def lowerlist(inputList):
[x.lower() for x in inputList]
print inputList
inputList = ["Red", "green", "Blue"]
lowerList(inputList)
只需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)
您可以只返回新创建的列表:
def lowerlist(inputList):
return [x.lower() for x in inputList]
inputList = ["Red", "green", "Blue"]
resultList = lowerlist(inputList)
顺便说一句,列表理解会创建一个新列表,它不会就地更改列表,因此,如果执行以下操作:
[x.lower() for x in inputList]
您不是在修改inputList
,而是在创建一个新列表(然后可以返回此列表并进行分配)
除了列表理解不会更改列表(至少从python 2.7开始),因此您需要:
print "{0}, ".format([x.lower() for x in inputList])
列表理解会返回一个列表,所以类似
lowercaseStrings = [x.lower() for x in inputList]
您要迭代的列表保持不变。 因此,inputList仍将包含小写和大写字符串的混合。
要返回小写字符串列表,可以使用以下命令(如其他答案所述)
def lowerlist(inputList):
return [x.lower() for x in inputList]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.