使用两个列表而不是.replace()

时间:2018-12-13 11:08:58

标签: python python-3.x replace

如果您有一个字符串,例如包含“你好吗?”,我将stringname.replace("how", "How")的第一个单词写成大写字母H。
到目前为止一切都很好。
现在的问题是,我正在编写此脚本,该脚本有时会访问“开放天气地图”,而这些单词使我发疯。
到目前为止,我只是做了一个

weather2 = self.weather.replace("partly", "Partly")
weather3 = weather2.replace("cloudy", "Cloudy")
weather4 = weather3.replace("foggy", "Foggy")
weather5 = weather4.replace("sunny", "Sunny")
weather6 = weather5.replace("rain", "Rain") #and so on

但是我不能有20个.replace()

所以我在想,这是我的问题: 我可以创建两个列表,一个包含OWM原始文档,另一个包含应替换为Word的列表,并执行类似的操作

for name in names 
    do something

3 个答案:

答案 0 :(得分:2)

要使用首字母大写,请使用mystring.title()

for name in names:
  name.title()

https://www.geeksforgeeks.org/title-in-python/

答案 1 :(得分:1)

如果要大写字符串,可以使用.capitalize()

self.weather= self.weather.capitalize()

或者如果您想使用列表/词典解决方案:

dictionary={'cloudy':'Cloudy','foggy':'Foggy','sunny':'Sunny','rain':'Rain'}
if self.weather in dictionary:
    self.weather=dictionary[self.weather]

答案 2 :(得分:1)

使用.capitalize()函数。 .title()函数的行为也相似。但是如果您的字符串中包含多个单词,则会将字符串中的所有首字母大写。

for name in names: name.capitalize()