Я упростил ваш код, чтобы вы могли видеть, что происходит:
tweets = ["tweet 1", "tweet 2", "tweet 3"]
images = ["image 1", "image 2", "image 3"]
for t in tweets:
for i in images:
print(t + " with " + i)
images = images[1:]
Вывод:
tweet 1 with image 1
tweet 1 with image 2
tweet 1 with image 3
Что происходитна?
у вас есть две for
петли, одна внутри другой, говоря:
Для каждого твита, для каждого изображения, покажите мне твит + изображение, затемудалить первое изображение в списке
Итак, что ваша программа делает:
# first iteration of 'tweets' list
tweet = "tweet 1"
# first iteration of 'images' list
image = "image 1"
print tweet + image # ("tweet 1" and "image 1")
# remove first image from 'images' ("images 1")
# second iteration of 'images' list (notice that tweet is still "tweet 1")
image = "image 2"
print tweet + image # ("tweet 1" and "image 2")
# remove first image from 'images' ("images 2")
# third iteration of 'images' list (notice that tweet is still "tweet 1")
image = "image 3"
print tweet + image # ("tweet 1" and "image 2")
# remove first image from 'images' ("images 3")
# second iteration of 'tweets' list
tweet = "tweet 2"
# 'images' list is now empty, so nothing will be iterated (nor printed)
# third iteration of 'tweets' list
tweet = "tweet 3"
# 'images' list is now empty, so nothing will be iterated (nor printed)
Так что же делать?
Предполагаясписки имеют одинаковую длину n
, вы можете выбрать элементы по индексу, от 0
до n-1
:
tweets = ["tweet 1", "tweet 2", "tweet 3"]
images = ["image 1", "image 2", "image 3"]
for n in range(len(images)):
print(tweets[n] + " with " + images[n])
вывод:
tweet 1 with image 1
tweet 2 with image 2
tweet 3 with image 3
Если выхочу пойти еще дальше, в Python есть встроенный zips вместе 2 списка: функция zip ()
tweets = ["tweet 1", "tweet 2", "tweet 3"]
images = ["image 1", "image 2", "image 3"]
my_tweets = zip(tweets, images)
for tweet, image in my_tweets:
print(tweet + " with " + image)
Есть много других решений, но эта 2 должна работать нормально для вас.Используйте первое, если вам больше не нужны эти твиты в коде;если вы собираетесь использовать их снова, перейдите с zip
.
Оставьте только последний шаг, чтобы фактически опубликовать твиты.Удачи!