如何将列表中的单个项转换为.lower()



如何通过使用for循环转换列表中的单个项目?我想让程序识别飞机不是小写和小写。

vehicles = ['car', 'bicycle', 'Plane',]
for vehicle in vehicles:
if vehicle == vehicle.lower():
print(f"{vehicle.title()} is in lowercase")
else:
print(f"Vehicle is not in lowercase: {vehicle}")

I tried with:

if vehicle in vehicles != vehicle.lower():
vehicle = vehicle.lower()
print(vehicles)

但是当我再次打印list时,它仍然显示第一个大写字母的平面。

编辑:很抱歉造成一些混淆,我添加了"print(f"{vehicle.title()}是小写")"只是为了美学。我想要的是让程序识别非小写字符串然后在列表中修改该字符串,然后当列表再次打印时,它会显示">

您的第一个代码位正确地检测字符串是否不是小写的,但是您打印非小写的版本(使用vehicle.title())。实际上,你不需要来检测它是否是小写的。把它们都小写就行了——这样很便宜。

vehicles = [vehicle.lower() for vehicle in vehicles]

听起来你只是想把所有东西都变成小写,在这种情况下你可以使用列表推导式:

vehicles_lower = [v.lower() for v in vehicles]
print(vehicles_lower)

你的问题是重复的修改列表中当前迭代元素的值

如果你想改变列表,你必须像这样改变for循环:

a_list = ["a", "b", "c"]
for i in range(len(a_list)):
a_list[i] = a_list[i] + a_list[i]
print(a_list)

在他的回答中,@erip提供了另一种语法,通过将结果赋值给列表来完成此操作。

最新更新