【问题标题】:AttributeError: 'list' object has no attribute 'startswith'AttributeError:“list”对象没有属性“startswith”
【发布时间】:2020-05-03 11:50:28
【问题描述】:
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(最近一次调用最后一次) 在 () 4 城市中的 city_m 为 5: ----> 6 如果 city.startswith("M"): 7 print("以M开头的城市:", 城市) 其他 8 个:

AttributeError: 'list' 对象没有属性 'startswith'

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

【问题讨论】:

    标签: python-3.x jupyter-notebook


    【解决方案1】:

    您在 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']"
    
    

    【讨论】:

      猜你喜欢
      • 2017-12-20
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 2013-07-29
      • 2017-10-05
      • 1970-01-01
      相关资源
      最近更新 更多