字符串中的交替单词 - Python

时间:2013-01-26 02:22:49

标签: python string list alternate

我必须创建一个程序,询问用户两个字符串然后 生成一个新字符串,从第一个字符串中替换一个单词 和第二个字符串中的一个单词,其中“单词”在上面定义为空格或标点符号之间的任何内容。什么时候 一个字符串用完单词只需使用较长字符串的其余部分。 (例如'This。是.a,test'和'我的妈妈制作一个平均意大利面 酱''会产生'这是我妈妈做的测试意味着面食 酱”)

任何输入都会受到赞赏我正在尝试学习如何编程以及我目前所处的工作根本不起作用。

2 个答案:

答案 0 :(得分:0)

查看Python的itertools模块的文档。特别是函数itertools.izip_longest(解决了你发布的确切问题)。

来自文档:

itertools.izip_longest(* iterables [,fillvalue]) 创建一个聚合来自每个迭代的元素的迭代器。如果迭代的长度不均匀,则使用fillvalue填充缺失值。迭代继续,直到最长的可迭代用尽。

如果其中一个iterables可能是无限的,那么izip_longest()函数应该包含一些限制调用次数的东西(例如islice()或takewhile())。如果未指定,则fillvalue默认为None。

答案 1 :(得分:0)

random模块是一个很好的模块,可以帮助解决这个问题。

我使用string模块删除所有标点符号。

import random
import string
sentence_one = raw_input('Enter the first sentence! ').translate(None, string.punctuation)
sentence_two = raw_input('Enter the second sentence! ').translate(None, string.punctuation)
mylist1 = sentence_one.split()
mylist2 = sentence_two.split()
mylist3 = mylist1 + mylist2
random.shuffle(mylist3)
randomsentence = ' '.join(mylist3)
print randomsentence

运行时:

Enter the first sentence! one, two, three
Enter the second sentence! four! five! six!
three two four six one five # Well it could be anything really, this is randomised.