如何在for循环中当前项目之后调用项目

时间:2019-02-20 12:46:01

标签: python

我正在尝试列出电话列表,并将其转换为双音素。实际上,这意味着采用序列“ ii z n!”。例如,并制作“ s_ii ii_z z_n!”,因此,对于每个项目,您都将创建一个包含当前项目的字符串,下划线和下一个项目。

对于如何在for循环中调用下一个项目,我非常不确定。我试图找到一种方法,用一行中的项目创建一个列表,然后遍历列表的范围,这样我就可以处理整数,但是我不确定该怎么做,因为我需要首先遍历整行。

“ recipe_phone_utts.txt”中包含电话列表,其格式为100,000行句子,这些句子已被翻译成电话,通常每行约50部电话。我最初的想法是创建一个包含该行中所有单词的列表,然后通过将“ n”和“ n + 1”加入for in in line:loop中来使用该列表,但是我不确定如何执行此操作。 / p>

with open('recipe_phone_utts.txt') as file:
    new_diphone_file = open('recipe_diphone_utts.txt', 'a+')
    for line in file:
        current_line = []
        for word in line.split():
            current_line.append(word)
    new_diphone_file.close()
file.close()

编辑:答案似乎暗示我先创建一个列表,然后使用该列表,但是该信息当前未存储在列表中,如上所示,我不知道如何在循环中手动创建列表然后对其进行迭代

编辑2:一个评论要求输入和输出示例:

样本输入:s ii z n! cch i k i n w i dh oo lw t a n d p e p @

样本输出:pau_s s_ii ii_z z_n! !n_cch cch_​​i i_k k_i i_n n_w w_i i_dh dh_s s_oo oo_lw lw_t t_a a_n n_d d_p p_e e_p p_ @ @_pau

开头和结尾的pau_和_pau是暂停。

3 个答案:

答案 0 :(得分:3)

您可以使用class OrderingMassage(models.Model): massage_product = models.OneToOneField(Product, on_delete=models.CASCADE,null=True, blank=True) 并遍历同一件事:)

zip

答案 1 :(得分:0)

您可以使用+操作来连接字符串。您可以将字符串拆分为一个列表,然后可以使用for循环遍历列表,并将其与中间的空格放回去:

a = 's ii z n!'.split(' ')
# a = ['s', 'ii', 'z', 'n!']
biList = [a[i]+'_'+a[i+1] for i in range(len(a)-1)]
# biList = ['s_ii', 'ii_z', 'z_n!']
" ".join(biList)
# output: 's_ii ii_z z_n!'

答案 2 :(得分:0)

尝试一下:

x = 's ii z n!'.split(' ')
for i in range(1, len(x)):
    print(*it.chain(x[i-1]+'_', x[i]))