2009-06-25 30 views
0

我的代碼:無法把一個變量在Python的打印

year=[51-52,53,55,56,58,59,60,61] 
photo=[{70,72,73},{64,65,68},{79,80,81,82},{74,77,78},{60,61,62},{84,85,87},{57,58,59},{53,54,55,56}] 

for i in range(7): 
    print "<img src=\"http://files.getdropbox.com/u/100000/Akuja/",year,"/P10104",photo,".JPG\">" 

我運行它,我得到

File "/tmp/aku.py", line 2 
    photo=[{70,72,73},{64,65,68},{79,80,81,82},{74,77,78},{60,61,62},{84,85,87},{57,58,59},{53,54,55,56}] 
      ^
SyntaxError: invalid syntax 

我想下面的輸出

<img src="http://files.getdropbox.com/u/100000/Akuja/51-52/P1010470.JPG"> 
<img src="http://files.getdropbox.com/u/100000/Akuja/51-52/P1010472.JPG"> 
<img src="http://files.getdropbox.com/u/100000/Akuja/51-52/P1010473.JPG"> 

<img src="http://files.getdropbox.com/u/100000/Akuja/53/P1010464.JPG"> 
<img src="http://files.getdropbox.com/u/100000/Akuja/53/P1010465.JPG"> 
<img src="http://files.getdropbox.com/u/100000/Akuja/53/P1010468.JPG"> 

... 

我也用列表的語法運行相同的代碼不成功 photo = {[7 0,72,73],...}

如何使Python代碼正常工作?

回答

2

因此,這裏是你的簡單解決您簡單的問題

year=['51-52', '53', '55' , '56' , '58', '59', '60', '61'] 
photo=[[70,72,73], [64,65,68],[79,80,81,82],[74,77,78],[60,61,62],[84,85,87],[57,58,59],[53,54,55,56]] 

for i in range(len(year)): 
    for j in range(len(photo[i])): 
     print '<img src=\"http://files.getdropbox.com/u/100000/Akuja/%s/P10104%s.JPG>' % (year[i], photo[i][j]) 
+0

有可變照片有些問題,因爲我得到的http:// dpaste .com/59845/ – 2009-06-25 23:01:53

+1

嗯你確定嗎?我只是跑它,並得到http://dpaste.com/59851/ – Toby 2009-06-25 23:20:18

3

大括號用於表示字典(關聯數組)。你想使用方括號,它表示一個列表。

此外,你可能不希望51-52在第一行,因爲這將評估爲-1。你應該把「51-52」確保它是一個字符串。

然後爲了得到你想要的索引,你需要做**年**而不是僅僅年份,它打印出整個列表。

1

既然你想多年並打印照片迭代那年我會做這種方式:

year=["51-52","53","55","56","58","59","60","61"] 
photo=[(70,72,73),(64,65,68),(79,80,81,82),(74,77,78),(60,61,62), 
     (84,85,87),(57,58,59),(53,54,55,56)] 

# this dictionary will be generated with the code below 
#photos = { 
# "51-52": (70,72,73), 
# "53": (64,65,68), 
# "55": (79,80,81,82), 
# "56": (74,77,78), 
# "58": (60,61,62), 
# "59": (84,85,87), 
# "60": (57,58,59), 
# "61": (53,54,55,56) 
#} 


photos = {}       # create photos dictionary 

for y in xrange(len(year)): 
    photos[year[y]] = photo[y] 

years = photos.keys()    # sort the years 
years.sort() 

for year in years: 
    for photo in photos[year]: 
     print "<img src=\"http://files.getdropbox.com/u/100000/Akuja/"+year+"/P10104"+str(photo)+".JPG\">" 

你得到:

<img src="http://files.getdropbox.com/u/100000/Akuja/51-52/P1010470.JPG"> 
<img src="http://files.getdropbox.com/u/100000/Akuja/51-52/P1010472.JPG"> 
<img src="http://files.getdropbox.com/u/100000/Akuja/51-52/P1010473.JPG"> 
<img src="http://files.getdropbox.com/u/100000/Akuja/53/P1010464.JPG"> 
<img src="http://files.getdropbox.com/u/100000/Akuja/53/P1010465.JPG"> 
<img src="http://files.getdropbox.com/u/100000/Akuja/53/P1010468.JPG"> 

我會將照片和年份存儲在字典中,如上所示,但如果你有年在單獨的列表的照片(如你的問題),你可以創建照片是這樣,注意年在引號「」:

photos = {} 

for y in xrange(len(year)): 
    photos[year[y]] = photo[y]