Python-通过元组搜索



对于这个问题,我想搜索元组并找到所有以"N"开头的状态,并将其插入到一个新列表中

我试图解决这个问题,结果被卡住了。有人能帮我吗?谢谢

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:
if i == letterN:
listN.append(i)
listN=[st for st in states if st.startswith('N')]
> output: ['NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND']

如果您想要一个函数而不是脚本:

def find_n_states(states, letter):
n_states = []
for state in states:
if state[0] == letter:
n_states.append(state)
return n_states

find_n_states(states, 'N')
Output: ['NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND']

问题是,如果i==letterN总是返回false,因为"N-";不等于";N〃;。我们可以使用str.startswitch(子字符串(来检查字符串是否以给定的子字符串开头。

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:
if i.startswith(letterN):
listN.append(i)

最新更新