Как изменить прописные буквы & amp; в нижнем регистре альтернативно в строке?

Для меня (Ubuntu 16.04, R 3.4.2) была использована смесь из вышеперечисленных решений:

sudo apt-get install libudunits2-dev libgdal-dev libgeos-dev libproj-dev

Затем просто установили rgdal из CRAN.

3
задан eyllanesc 17 January 2019 в 08:48
поделиться

6 ответов

Вот онлайнер

"".join([x.upper() if i%2 else x.lower() for i,x in enumerate(mystring)])
0
ответ дан najeem 17 January 2019 в 08:48
поделиться

Это делает работу также

def foo(input_message):

    c = 0 
    output_message = ""

    for m in input_message:
        if (c%2==0):
            output_message = output_message + m.lower() 
        else: 
            output_message = output_message + m.upper()
        c = c + 1 

    return output_message
0
ответ дан Loss of human identity 17 January 2019 в 08:48
поделиться

Вы можете просто случайным образом выбрать каждую букву в старой строке, если вы должны использовать строчные или прописные буквы, например:

import random

def myfunc2(old):
  new = ''
  for c in old:
    lower = random.randint(0, 1)
    if lower:
      new += c.lower()
    else:
      new += c.upper()
  return new
0
ответ дан Daniel Trugman 17 January 2019 в 08:48
поделиться

Вот решение с использованием itertools, которое использует нарезку строк:

from itertools import chain, zip_longest

x = 'inputstring'

zipper = zip_longest(x[::2].lower(), x[1::2].upper(), fillvalue='')
res = ''.join(chain.from_iterable(zipper))

# 'iNpUtStRiNg'
0
ответ дан jpp 17 January 2019 в 08:48
поделиться

Использование среза строки:

from itertools import zip_longest

s = 'example'

new_s = ''.join(x.upper() + y.lower()
                for x, y in zip_longest(s[::2], s[1::2], fillvalue=''))
# ExAmPlE

Использование итератора:

s_iter = iter(s)

new_s = ''.join(x.upper() + y.lower()
                for x, y in zip_longest(s_iter, s_iter, fillvalue=''))
# ExAmPlE

Использование функции reduce():

def func(x, y):
    if x[-1].islower():
        return x + y.upper()
    else:
        return x + y.lower()

new_s = reduce(func, s) # eXaMpLe
0
ответ дан Mykola Zotko 17 January 2019 в 08:48
поделиться

Этот код также возвращает строку альтернативных прописных букв: -

def alternative_strings(strings):
        for i,x in enumerate(strings):
            if i % 2 == 0:
                print(x.upper(), end="")
            else:
                print(x.lower(), end= "")
        return ''


print(alternative_strings("Testing String"))
0
ответ дан Anupam Jain 17 January 2019 в 08:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: