Python脚本将一个字符串映射到另一个字符串

时间:2015-10-15 06:01:59

标签: python dictionary mapping

我有一个名为file1.txt的文件,其内容如下:

FILE1.TXT

Python是一种通用的,解释性的,交互式的,面向对象的高级编程语言。 Python由Guido van Rossum在八十年代末和九十年代初在荷兰国家数学和计算机科学研究所开发。 Python源自许多其他语言,包括ABC,Modula-3,C,C ++,Algol-68,SmallTalk和Unix shell以及其他脚本语言。 Python受版权保护。与Perl一样,Python源代码现在可以在GNU通用公共许可证(GPL)下获得。

我想映射一个字符串,例如。文件中的第三个句子是另一个字符串,如#" Python的设计具有高可读性,经常使用英文关键字"

如何在python中完成此映射?我知道字典相当于python中的hashmap但是字典可以用来将1个字符串映射到另一个吗?

我尝试过类似的事情:

f=open("log5.txt")
dict = {'f.readline()': 'Python was designed to be highly readable which uses English keywords frequently'}
print(f.readline())
print(dict['f.readline()'])

但是上面的程序映射了第一句话,还有没有更好更有效的方法来编写上面的程序???

1 个答案:

答案 0 :(得分:0)

好的,2个简单的解决方案:.split(...)re.(...)

text = "Python is ... License (GPL)."

# add back the periods, this isn't the most efficient way (use regex or a tokenizer for better results but this works)
def add_periods(sentences)
   return [sentence + "." for sentence in periodless_sentences]

# i have no idea why you'd want to do this
def map_to_sentence_index(sentences):
   return {i: (s + ".") for (s, i) in enumerate(sentences)}

# split
periodless_sentences = str.split('. ')

# regex
import re
sentences = re.split(r' *[\.\?!][\'"\)\]]* *', text)

在python中map表示map(func, lst),其中func是您想要应用于lst的每个元素的某个函数。这不是你所描述的。 map是保留的关键字。

map(len, ["a", "bb", "ccc"]) => [1, 2, 3]

老实说,你的问题在python的上下文中没什么意义,看起来是从教科书中复制粘贴的。请不要使用stackoverflow作为家庭作业解决方案网站。也就是说,这是解决方案lol