如何用Python遍历tuple元组筛选首字母为N的州名缩写存入新列表
你代码的核心逻辑错误出在循环内的判断条件:你写的if i == letterN是判断整个州名缩写等于字符串"N",但所有州名缩写都是2位字符,永远不可能匹配成功,所以最终listN会是空列表。
你需要判断的是州名缩写的首字符为N,可以直接用Python字符串内置的startswith()方法实现,修改判断条件即可。
修正后完整代码
states = ("AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY") letterN = "N" listN=[] for i in states: # 修正判断条件,判断是否以N开头 if i.startswith(letterN): listN.append(i)
运行后得到的listN结果为:['NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND']
你也可以用更简洁的列表推导式实现,效果完全一致:
listN = [i for i in states if i.startswith(letterN)]
内容的提问来源于stack exchange,提问作者Michelle
相关产品推荐
相关产品推荐

