【问题标题】:function to change cases of certain characters in a string更改字符串中某些字符大小写的函数
【发布时间】:2019-12-24 01:04:22
【问题描述】:

我有一个字符串,我想将第一个字母和每个备用字母更改为大写,并利用列表理解来转换我的嵌套 for 循环。

我有字符串,我设法将它拆分为单词并使用嵌套的 for 循环,将字母转换为大写,但我无法从嵌套的 for 循环中将结果捕获到正确的数组中而且我也无法用列表理解替换嵌套的 for 循环。

输入字符串

st = 'This is my expected function that is supposed to convert the first character and every alternate character into upper case'

将输入字符串转换为单词

words = [b for b in st.split()]

for i in range(0,len(words)):
    temp_word = list(words[i])
    for j in range(0,len(temp_word),2):
        temp_word[j] = temp_word[j].upper()
        print(temp_word)

输入:'这是我预期的函数,应该转换第一个 字符和每个备用字符都变成大写'

输出:'这是我的预期功能,应该将第一个字符和每个替换字符转换为上层案例'

【问题讨论】:

  • 您能否考虑改进格式以便更容易理解您的程序?
  • 如果您认为它可以解决您的问题,请accept 回答。它将帮助整个社区识别正确的解决方案。这可以通过单击答案旁边的绿色复选标记来完成。请参阅此image 以供参考。干杯。

标签: python list function list-comprehension


【解决方案1】:

您可以使用列表理解来执行join

' '.join([''.join([char.upper() if i % 2 == 0 else char for i, char in enumerate(word)]) for word in st.split()])

示例

st = 'This is my expected function that is supposed to convert the first character and every alternate character into upper case'

print(' '.join([''.join([char.upper() if i % 2 == 0 else char for i, char in enumerate(word)]) for word in st.split()]))
# ThIs Is My ExPeCtEd FuNcTiOn ThAt Is SuPpOsEd To CoNvErT ThE FiRsT ChArAcTeR AnD EvErY AlTeRnAtE ChArAcTeR InTo UpPeR CaSe

【讨论】:

  • 谢谢。有用!!不过我会花一些时间来理解这段代码。
猜你喜欢
  • 2011-01-07
  • 1970-01-01
  • 2012-01-03
  • 2014-02-04
  • 2011-11-30
  • 2020-02-15
  • 2015-06-01
  • 2011-10-11
  • 2021-03-30
相关资源
最近更新 更多