Я сейчас застрял в этом прямо сейчас.

У меня есть код прямо здесь:

words = ["Hello","how","are","you"]
arrlen = len(words)
val1, val2, val3, val4 = words

Я хочу добавить ".mp4" в каждый val1, val2, val3 и val4. Есть ли способ добиться этого? Я пытался val1 + ".mp4", но это не работает.

1
pyyan 4 Мар 2018 в 00:47

3 ответа

Лучший ответ

Используя понимание списка:

>>> words = ["Hello","how","are","you"]
>>> words = [x + ".mp4" for x in words]
>>> words
['Hello.mp4', 'how.mp4', 'are.mp4', 'you.mp4']
2
user3483203 3 Мар 2018 в 22:19

Вы можете использовать встроенную функцию map().

Непосредственно из документов:

Возвращает итератор, который применяет функцию к каждому элементу итерируемого, давая результаты.

Здесь эта функция представляет собой лямбда-выражение вместо этого и сопоставляет каждый элемент из words с + '.mp4', что именно то, что вам нужно:

words = ['Hello', 'how', 'are', 'you']
words = list(map(lambda s: s + '.mp4', words))
print(words)
0
wencakisa 3 Мар 2018 в 21:51

Мутируйте каждый предмет вместе с распаковкой:

words = ["Hello","how","are","you"]
arrlen = len(words)
val1, val2, val3, val4 = ["{}.mp4".format(word) for word in words]
1
Ajax1234 3 Мар 2018 в 21:49