对于循环周期顺序

时间:2019-11-26 20:42:52

标签: python loops twitter

我正在创建一个简短的脚本,该脚本通过twitter API自动发推。除了设置API凭据(不在问题范围内)之外,我还导入以下库:

import os

我已将工作目录设置为其中有3张照片的文件夹。如果运行os.listdir('.'),将得到以下列表。

['Image_1.PNG',
 'Image_2.PNG',
 'Image_3.jpg',]

“ mylist”是一个字符串列表,实际上是3条tweet。

在Twitter中自动发布的代码如下:


for image in os.listdir('.'):
    for num in range(len(mylist)):
        api.update_with_media(image, mylist[num])

该代码基本上将第一条图片分配给tweet并发布。然后到同一张图片的第二条推文和帖子。再次是第一张图片-第三条推文。然后它继续循环至第二张和第三张图像总共3 * 3 9次/帖。

不过,我要实现的是使用第一条推文并发布第一张照片。然后使用第二条推文拍摄第二张图片并发布。第三张图片-第三条推文。然后我想再运行一次:第一张图片-第一张鸣叫,第二张图片-第二张鸣叫...等等。

2 个答案:

答案 0 :(得分:1)

使用zip并行遍历两个(或更多)集合

for tweet, image in zip(mylist, os.listdir('.')):
    api.update_with_media(image, tweet)

要重复多次,可以将此循环放在另一个for

答案 1 :(得分:1)

假设os.listdir('。')和mylist的长度相等:

private func constructQuestionViewCell(_ cell: QuestionViewCell, withQuestion question: SurveyQuestion? = nil) -> QuestionViewCell {
    cell.questionTitle.text = question?.title
    cell.questionTitle.numberOfLines = 0
    cell.questionTitle.sizeToFit()
    if (question?.type == "number_list") {
        let options = question?.values ?? [" ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
        let picker = CustomPickerView(frame: .zero, textView: cell.questionResponse, options: options)
        cell.questionResponse.inputView = picker
        picker.reloadAllComponents()
    }
return cell
}