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

Posted

技术标签:

【中文标题】AttributeError:“list”对象没有属性“startswith”【英文标题】:AttributeError: 'list' object has no attribute '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”开头的城市,但标题中出现错误,我不明白。也许我做错了什么,我很感激关于这个问题的任何反馈。提前谢谢你。

【问题讨论】:

【参考方案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']"

【讨论】:

以上是关于AttributeError:“list”对象没有属性“startswith”的主要内容,如果未能解决你的问题,请参考以下文章

面对 AttributeError:'list' 对象没有属性 'lower'

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

如何解决 AttributeError:'list' 对象在 python 中没有属性'keys' [关闭]

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

AttributeError: 'list' 对象在使用 cx_freeze 时没有属性 'rfind'

Sklearn 错误:“AttributeError:‘MissingValues’对象没有属性‘to_list’”