Я хочу добавить строку, допустим "NEWYEAR", в массив с длиной, которая не обязательно совпадает с длиной "NEWYEAR" - при этом массив должен быть "полностью" заполнен строкой, не оставляя пробелов. Грубо говоря, вот что я имею в виду:

array = [0,0,0,0,0,0,0,0,0,0,0]
some_string="NEWYEAR"

#добавляйте some_string в массив, пока в массиве не останется ни одного свободного места.
#some_string должна повторяться до тех пор, пока не будет выполнено верхнее условие.

array = ["N","E","W","Y","E","A","R","N","E"].

Не могли бы вы подсказать мне интуитивный способ достижения моей цели?

xobqox

Ответов: 5

Ответы (5)

Существует много способов добиться этого, но я думаю, что один из самых простых - использовать оператор %.

size_of = 15

слово = 'НОВЫЙ ГОД'

массив = []

size_of_word= len(word)

size_of_word = len(word)
for letter in range(size_of):
    array.append(word[letter%size_of_word])

Можно сделать

(list(some_string)*(int(len(array)/len(some_string))+1)))[:len(array)]

or

[some_string[i%len(some_string)] for i in range(len(array))]
str_len = len(some_string)
arr_len = len(array)
for i in range(arr_len):
   array[i] = some_string[i%str_len]

print(array)

Код

len_ar = int(input("Введите длину : "))
arr_lst = [None]*len_ar
str_nam = input("Введите строку : ")
f_str = (str_nam * (int(len_ar/len(str_nam))+1))[:len_ar]

for i in range(len_ar):
    arr_lst[i] = f_str[i]

print(arr_lst)

Один из возможных способов

import random

array = [0,0,0,0,0,0,0,0,0,0]
some_string = "NEWYEAR"

new_string = ''.join(random.choice(some_string) for i in range(len(array)))
array[:] = [char for char in new_string]

print(array)

2022 WebDevInsider