【问题标题】:How do I input values from a list into a string?如何将列表中的值输入到字符串中?
【发布时间】:2018-07-26 06:08:15
【问题描述】:

我正在尝试将以下列表值输入到下面的 url 字符串中。 当我执行以下操作时:

tickers = ['AAPL','YHOO','TSLA','NVDA']
url = 'http://www.zacks.com/stock/quote/{}'.format(tickers)`

Python 返回

http://www.zacks.com/stock/quote/['AAPL', 'YHOO', 'TSLA', 'NVDA']`

我希望它做的是遍历列表并返回以下内容:

http://www.zacks.com/stock/quote/AAPL
http://www.zacks.com/stock/quote/YHOO
http://www.zacks.com/stock/quote/TSLA
http://www.zacks.com/stock/quote/NVDA

谢谢。

【问题讨论】:

    标签: python string list format


    【解决方案1】:

    map 的绝妙技巧:

    url = 'http://www.zacks.com/stock/quote/{}'
    tickers = ['AAPL','YHOO','TSLA','NVDA']
    
    list(map(url.format, tickers))
    

    ['http://www.zacks.com/stock/quote/AAPL',
     'http://www.zacks.com/stock/quote/YHOO',
     'http://www.zacks.com/stock/quote/TSLA',
     'http://www.zacks.com/stock/quote/NVDA']
    

    【讨论】:

      【解决方案2】:

      使用这个:

      tickers = ['AAPL','YHOO','TSLA','NVDA']
      url = 'http://www.zacks.com/stock/quote/'
      ['{}{}'.format(url, x) for x in tickers]
      

      结果是:

      ['http://www.zacks.com/stock/quote/AAPL',
       'http://www.zacks.com/stock/quote/YHOO',
       'http://www.zacks.com/stock/quote/TSLA',
       'http://www.zacks.com/stock/quote/NVDA']
      

      【讨论】:

        【解决方案3】:

        您需要先加入列表,然后再将其传递。如果您尝试将一个包含所有参数的网址放入网址中,请先执行此操作:

        params = "".join(tickers)
        url = 'http://www.zacks.com/stock/quote/{}'.format(params)
        

        如果您希望每次使用一个参数的多个 url,请执行以下操作:

        urls = []
        for param in tickers:
            urls.append('http://www.zacks.com/stock/quote/{}'.format(param))
        

        【讨论】:

        • 不,这不是 OP 要求的。他们想要一个包含 4 个单独 URL 的列表。
        【解决方案4】:

        只需使用循环遍历tickers,然后将字符串连接在一起:

        tickers = ['AAPL','YHOO','TSLA','NVDA']
        url = 'http://www.zacks.com/stock/quote/'
        
        for ticker in tickers:
           print(url + ticker)
        
        # http://www.zacks.com/stock/quote/AAPL
        # http://www.zacks.com/stock/quote/YHOO
        # http://www.zacks.com/stock/quote/TSLA
        # http://www.zacks.com/stock/quote/NVDA
        

        或者使用列表理解:

        [url + ticker for ticker in tickers]
        

        它给出了列表中的组合字符串:

        ['http://www.zacks.com/stock/quote/AAPL', 
         'http://www.zacks.com/stock/quote/YHOO', 
         'http://www.zacks.com/stock/quote/TSLA', 
         'http://www.zacks.com/stock/quote/NVDA']
        

        【讨论】:

        • 好老循环。好东西。您也可以在列表中添加版本。
        • @cᴏʟᴅsᴘᴇᴇᴅ 是的,正要添加。谢谢队友:)。
        【解决方案5】:

        你可以试试这个:

        tickers = ['AAPL','YHOO','TSLA','NVDA']
        url = 'http://www.zacks.com/stock/quote/'
        for e in tickers:
            print(url + e)
        

        这将打印网址,您也可以将它们添加到列表中。

        【讨论】:

          【解决方案6】:

          试试这个:-

          tickers = ['AAPL','YHOO','TSLA','NVDA']
          url = 'http://www.zacks.com/stock/quote/'
          new_ls = (x+y for x,y in zip([url]*len(tickers),tickers))
          for new_url in new_ls:
              print(new_url)
          

          【讨论】:

            猜你喜欢
            • 2020-11-24
            • 1970-01-01
            • 1970-01-01
            • 2018-08-02
            • 2017-03-08
            • 2019-12-11
            • 1970-01-01
            • 2021-05-03
            • 1970-01-01
            相关资源
            最近更新 更多