首页 > 解决方案 > AttributeError:“list”对象没有属性“startswith”

问题描述

cities = ["New York", "Shanghai", "Munich", "Tokyo", "Dubai", "Mexico City", "São Paulo", "Hyderabad"]

for city_m in cities:
    if cities.startswith("M"):
        print("Cities that start with M:", cities)
    else:
        print("No cities start with M.")

打印(城市)

AttributeError Traceback (last last call last) in () 4 5 for city_m in city: ----> 6 if cities.startswith("M"): 7 print("Cities that start with M:", cities) 8 else :

AttributeError:“list”对象没有属性“startswith”

我试图列出以“m”开头的城市,但标题中出现错误,我不明白。也许我做错了什么,我很感激关于这个问题的任何反馈。先感谢您。

标签: python-3.xjupyter-notebook

解决方案


您在 for 循环中引用了错误的变量:

for city_m in cities:
    if cities.startswith("M"):

它应该是:

for city_m in cities:
    if city_m.startswith("M"):

虽然这并不能完全解决您在遍历整个列表时的问题,并且每次都会打印城市,但您应该将以 m 开头的城市添加到列表中,然后在循环之外检查该列表:


cities = ["New York", "Shanghai", "Munich", "Tokyo", "Dubai", "Mexico City", "São Paulo", "Hyderabad"]

m_cities = []

for city_m in cities:
    if city_m.startswith("M"):
        m_cities.append(city_m)

if m_cities:
    print("Cities that start with M:", m_cities)
else:
    print("No cities start with M.")

# Prints "Cities that start with M: ['Munich', 'Mexico City']"


推荐阅读