我正在尝试列出电话列表,并将其转换为双音素。实际上,这意味着采用序列“ 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是暂停。
答案 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]))