将值从列表插入到字符串python中

时间:2014-07-05 19:38:59

标签: python list loops url

我正熟悉Python。我从来没有做过任何编程或以前的事情,我真的很感激,如果有人会解释他的回答,而不仅仅是发布它,因为我想学习一些东西!更好的是不会发布回复,而只是提示我应该看什么或者其他东西:)

我有几个列表,其中一侧有很多值(数字)。 另一方面,我有一个URL,需要通过几个列表中的数字进行更新,然后保存到另一个列表中以便进一步处理。

#borders of the bbox
longmax = 15.418483 #longitude top right
longmin = 4.953142 #longitude top left
latmax = 54.869808 #latitude top 
latmin = 47.236219 #latitude bottom

#longitude
longstep = longmax - longmin 
longstepx = longstep / 100 #longitudal steps the model shall perfom


#latitude
latstep = latmax - longmin
latstepx = latstep / 100 #latitudal steps the model shall perform


#create list of steps through coordinates longitude
llong = []
while longmin < longmax:
    longmin+=longstepx
    llong.append(+longmin)


#create list of steps through coordinates latitude
llat = []
while latmin < latmax:
    latmin+=latstepx
    llat.append(+latmin)


#create the URLs and store in list
for i in (llong):
    "https://api.flickr.com/services/rest/?method=flickr.photos.search&format=json&api_key=5....lback=1&page=X&per_page=500&bbox=i&accuracy=1&has_geo=1&extras=geo,tags,views,description",sep="")"

如您所见,我尝试从flickr向REST API发出请求。 我不明白的是:

  1. 如何让循环遍历我的列表,将列表中的值插入到URL中的某个点?
  2. 如何告诉循环在将第一个数字从列表中插入后单独保存每个URL&#34; llong&#34;和&#34; llat&#34;然后继续下两个数字。
  3. 任何提示?

2 个答案:

答案 0 :(得分:0)

您可以使用string formatting在网址中插入您想要的内容:

my_list=["foo","bar","foobar"]

for word in my_list:
    print ("www.google.com/{}".format(word))
www.google.com/foo
www.google.com/bar
www.google.com/foobar

{}在您想要插入的字符串中使用。

要将它们保存到列表中,您可以使用zip,使用字符串格式插入,然后附加到新列表。

urls=[]
for lat,lon in  zip(llat,llong):
    urls.append("www.google.com/{}{}".format(lat,lon))

Python string formatting: % vs. .format

我认为.format()方法是首选方法,而不是使用"www.google.com/%s" % lat语法。  答案here讨论了一些差异。

最好用一个例子解释zip函数:

假设我们有2个列表l1和l2:

l1 = [1,2,3]
l2 = [4,5,6]

如果我们使用zip(l1,l2),结果将为:

[(1, 4), (2, 5), (3, 6)]

然后当我们遍历两个压缩列表时,如下所示:

for ele_1,ele_2 in zip(l1,l2):
    first iteration ele_1 = 1, ele_2 = 4
    second iteration ele_1 = 2 ele_2 = 5 and so on ...

答案 1 :(得分:0)

myUrls=[]
for i in range len(llat) # len(llong) is valid if both have same size.
    myUrls.append(newUrl(llat[i]),llong[i]) 


def newUrl(lat,long):
    return "www.flickr.......lat="+lat+".....long="+long+"...."