【问题标题】:Python - Searching though TuplePython - 通过元组搜索
【发布时间】:2021-12-28 19:32:06
【问题描述】:

对于这个问题,我想搜索元组并找到所有以'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)

【问题讨论】:

    标签: python python-3.x list search tuples


    【解决方案1】:

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

    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']
    

    【讨论】:

      【解决方案2】:
      listN=[st for st in states if st.startswith('N')]
      
      > output: ['NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND']
      

      【讨论】:

        【解决方案3】:

        问题是你说如果 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)
        

        【讨论】:

        • 拥有一个名为 letterN 的变量只包含字母 'N' 的目的是什么?只需使用'N' 作为字符串,要短得多,变量这样命名完全没有意义
        猜你喜欢
        • 1970-01-01
        • 2017-02-21
        • 1970-01-01
        • 2015-06-08
        • 1970-01-01
        • 1970-01-01
        • 2015-10-17
        • 2020-03-25
        • 1970-01-01
        相关资源
        最近更新 更多