Невозможно поместить переменную в печать Python - PullRequest
0 голосов
/ 26 июня 2009

Мой код:

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">

...

Я также безуспешно запускаю тот же код с синтаксисом для списка фото = {[70,72,73], ...}

Как заставить работать код Python?

Ответы [ 3 ]

3 голосов
/ 26 июня 2009

Скобки используются для обозначения словаря (ассоциативный массив). Вы хотите использовать квадратные скобки, которые указывают на список.

Также вам, вероятно, не нужно 51-52 в первой строке, так как это будет иметь значение -1. Вы должны поставить «51-52», чтобы убедиться, что это строка.

Затем, чтобы получить нужную индексацию, вам нужно сделать год ** [i] ** вместо просто года, который выводит весь список.

2 голосов
/ 26 июня 2009

Итак, вот ваше простое решение вашей простой проблемы

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])
1 голос
/ 26 июня 2009

Поскольку вы пытаетесь повторять по годам и печатать фотографии за этот год, я бы сделал это следующим образом:

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...