给字符串中的空格编号
To number the blanks in a string
正在尝试对句子进行记忆测试。
对于给定的句子,代码会随机选择 3 个单词并将它们填入空白。它还打印出 'answers'.
The quick brown fox jumps over the lazy dog. # original sentence
正在进行:
import string, re
from random import sample
original = 'The quick brown fox jumps over the lazy dog.'
o_list = original.split()
picked = sorted(sample(range(1,len(o_list)), 3))
new_sentence = []
for idx, word in enumerate(o_list):
if idx in picked:
word = " _____ "
else:
word = word
new_sentence.append(word)
new_sentence = " ".join(new_sentence)
print (new_sentence)
answers = [str(idx+1) + '.' + o_list[w] + ' ' for idx, w in enumerate(picked)]
print (''.join(answers))
输出:
The quick brown _____ jumps over _____ lazy _____ # question sentence
1.fox 2.the 3.dog.
我想给空格编号,比如:
The quick brown 1. _____ jumps over 2. _____ lazy 3. _____
尝试了正则表达式方式,但它只会将它们替换为空白:
new_sentence = re.sub(r' _____ ', ' ', new_sentence)
实现它的最佳方法是什么?谢谢!
你可以这样做:
import string, re
from random import sample
original = 'The quick brown fox jumps over the lazy dog.'
o_list = original.split()
picked = sorted(sample(range(1,len(o_list)), 3))
new_sentence = []
word_count = 1
for idx, word in enumerate(o_list):
if idx in picked:
word = f"{word_count}. _____ "
word_count += 1
else:
word = word
new_sentence.append(word)
new_sentence = " ".join(new_sentence)
print (new_sentence)
answers = [str(idx+1) + '.' + o_list[w] + ' ' for idx, w in enumerate(picked)]
print (''.join(answers))
您只需添加一个单词计数器并在每次替换单词时增加它。
输出:
The 1. _____ brown fox jumps 2. _____ the lazy 3. _____
1.quick 2.over 3.dog.
这是你想要的吗?
for idx in range(len(picked)):
new_sentence = re.sub(r"[a-zA-Z0-9 ] _____ ", " %d. _____ " % (idx + 1), new_sentence, 1)
输出就像
'The quick brown 1. _____ jumps over 2. _____ lazy 3. _____ '
正在尝试对句子进行记忆测试。
对于给定的句子,代码会随机选择 3 个单词并将它们填入空白。它还打印出 'answers'.
The quick brown fox jumps over the lazy dog. # original sentence
正在进行:
import string, re
from random import sample
original = 'The quick brown fox jumps over the lazy dog.'
o_list = original.split()
picked = sorted(sample(range(1,len(o_list)), 3))
new_sentence = []
for idx, word in enumerate(o_list):
if idx in picked:
word = " _____ "
else:
word = word
new_sentence.append(word)
new_sentence = " ".join(new_sentence)
print (new_sentence)
answers = [str(idx+1) + '.' + o_list[w] + ' ' for idx, w in enumerate(picked)]
print (''.join(answers))
输出:
The quick brown _____ jumps over _____ lazy _____ # question sentence
1.fox 2.the 3.dog.
我想给空格编号,比如:
The quick brown 1. _____ jumps over 2. _____ lazy 3. _____
尝试了正则表达式方式,但它只会将它们替换为空白:
new_sentence = re.sub(r' _____ ', ' ', new_sentence)
实现它的最佳方法是什么?谢谢!
你可以这样做:
import string, re
from random import sample
original = 'The quick brown fox jumps over the lazy dog.'
o_list = original.split()
picked = sorted(sample(range(1,len(o_list)), 3))
new_sentence = []
word_count = 1
for idx, word in enumerate(o_list):
if idx in picked:
word = f"{word_count}. _____ "
word_count += 1
else:
word = word
new_sentence.append(word)
new_sentence = " ".join(new_sentence)
print (new_sentence)
answers = [str(idx+1) + '.' + o_list[w] + ' ' for idx, w in enumerate(picked)]
print (''.join(answers))
您只需添加一个单词计数器并在每次替换单词时增加它。
输出:
The 1. _____ brown fox jumps 2. _____ the lazy 3. _____
1.quick 2.over 3.dog.
这是你想要的吗?
for idx in range(len(picked)):
new_sentence = re.sub(r"[a-zA-Z0-9 ] _____ ", " %d. _____ " % (idx + 1), new_sentence, 1)
输出就像
'The quick brown 1. _____ jumps over 2. _____ lazy 3. _____ '