對于這個問題,我想搜索元組并找到以“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)
uj5u.com熱心網友回復:
listN=[st for st in states if st.startswith('N')]
> output: ['NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND']
uj5u.com熱心網友回復:
如果你想要一個函式而不是一個腳本:
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']
uj5u.com熱心網友回復:
問題是你說 if i == letterN 總是回傳 false 因為“N-”不等于“N”。我們可以使用 str.startswith(substring) 來檢查字串是否以給定的子字串開頭。
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/360849.html
