добавить символ в список python - PullRequest
0 голосов
/ 28 января 2020

У меня есть список элементов, скажем, x = ['Zwi', 'sche', 'n', 'ab', 'schlus', 'ses'] Я пытаюсь написать al oop, чтобы добавить дефис между одним словом за раз, и результат должен выглядеть примерно так:

Zwi-schenabschlusses
Zwische-nabschlusses
Zwischen-abschlusses
Zwischenab-schlusses
Zwischenabschlus-ses

Кто-нибудь может мне помочь?

Ответы [ 8 ]

3 голосов
/ 28 января 2020

вы можете сделать

x = ['Zwi', 'sche', 'n', 'ab', 'schlus', 'ses']

s = "".join(x)
# Zwischenabschlusses

y = []
cumlen = 0
for i in x[:-1]:
    cumlen += len(i) 
    y.append(s[:cumlen]+"-"+s[cumlen:])

print(y)

Вывод:

['Zwi-schenabschlusses', 'Zwische-nabschlusses', 'Zwischen-abschlusses', 'Zwischenab-schlusses', 'Zwischenabschlus-ses']
2 голосов
/ 28 января 2020

Просто вставьте дефис в любое место ...

for i in range(1, len(x)):
    print(''.join(x[:i] + ['-'] + x[i:]))
1 голос
/ 28 января 2020
strs = ['Zwi', 'sche', 'n', 'ab', 'schlus', 'ses'] 

for index in range(1,len(strs)):

    out = '{}-{}'.format(''.join(strs[0:index]),''.join(strs[index:])) 
    print(out)


Zwi-schenabschlusses
Zwische-nabschlusses
Zwischen-abschlusses
Zwischenab-schlusses
Zwischenabschlus-ses
1 голос
/ 28 января 2020

вы можете использовать понимание списка с f-строками:

print(*[f"{''.join(x[:i])}-{''.join(x[i:])}"  for i in range(1, len(x))], sep='\n')

вывод:

Zwi-schenabschlusses
Zwische-nabschlusses
Zwischen-abschlusses
Zwischenab-schlusses
Zwischenabschlus-ses

или вы можете использовать генератор с методом join :

def generate_str(x):
    add_word = ''
    for word_index, word in enumerate(x[:-1]):
        add_word += word
        yield f"{add_word}-{''.join(x[word_index + 1:])}"

print('\n'.join(generate_str(x)))

выход:

Zwi-schenabschlusses
Zwische-nabschlusses
Zwischen-abschlusses
Zwischenab-schlusses
Zwischenabschlus-ses
1 голос
/ 28 января 2020
x = ['Zwi', 'sche', 'n', 'ab', 'schlus', 'ses']
d = [''.join(x[:range_]) + "-" +''.join(x[range_:]) for range_ in range(1, len(x))]

выходы:

['Zwi-schenabschlusses',
 'Zwische-nabschlusses',
 'Zwischen-abschlusses',
 'Zwischenab-schlusses',
 'Zwischenabschlus-ses']
1 голос
/ 28 января 2020

Один вкладыш в Python с использованием понимания списка :

x = ['Zwi', 'sche', 'n', 'ab', 'schlus', 'ses']
print([("".join(x[0:i]) + "-" + "".join(x[i:])) for i in range(1,len(x))])

Вывод:

['Zwi-schenabschlusses', 'Zwische-nabschlusses', 'Zwischen-abschlusses', 'Zwischenab-schlusses', 'Zwischenabschlus-ses']
1 голос
/ 28 января 2020

Ниже должен работать код:

x = ['Zwi', 'sche', 'n', 'ab', 'schlus', 'ses']
modifiedX = []
for i in range(len(x) - 1):
    newString = ""
    for j in range(len(x)):
        if j == i + 1:
            newString += "-"
        newString += x[j]
    modifiedX.append(newString)
print(modifiedX)

Вывод:

['Zwi-schenabschlusses', 'Zwische-nabschlusses', 'Zwischen-abschlusses', 'Zwischenab-schlusses', 'Zwischenabschlus-ses']
0 голосов
/ 28 января 2020
x = ['Zwi', 'sche', 'n', 'ab', 'schlus', 'ses']
combinedStr = ''.join(x)
output = []
slicing_counter = 0
for index in range(len(x) - 1):
    len_substring = len(x[index])
    slicing_counter = slicing_counter + len_substring
    output.append(combinedStr[0:slicing_counter] + '-' + combinedStr[slicing_counter:])
print(output)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...