количество - Выполните операцию строки для каждого элемента в списке Python




элементов сортировка (5)

У меня есть список строковых элементов в элементах python и я хотел бы редактировать каждый элемент в элементах, поэтому у меня есть новый элемент. См. Код ниже (он не работает, но вы получите идею):

for element in elements:
    element = "%" + element + "%"

Есть ли способ сделать это?


Answers

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

elements = ["%" + e + "%" for e in elements]

elements = map(lambda e : "%" + e + "%", elements)

Есть два способа сделать то, что вы хотите: либо отредактировать список, который у вас есть, либо создать новый список, который имеет нужные вам изменения. Все ответы в настоящее время показывают, как использовать понимание списка (или map() ) для создания нового списка, и я согласен, что это, вероятно, путь.

Другим возможным способом было бы перебирать список и редактировать его на месте. Вы можете сделать это, если список был большим, и вам нужно было лишь изменить несколько.

for i, e in enumerate(elements):
    if want_to_change_this_element(e):
        elements[i] = "%{}%".format(e)

Но, как я сказал, я рекомендую вам использовать один из ответов на понимание списка.


Вы можете использовать списки:

elements = ["%{}%".format(element) for element in elements]

Нет, никакого string.contains(str) , но есть оператор in :

if substring in someString:
    print "It's there!!!"

Вот более сложный рабочий пример:

# Print all files with dot in home directory
import commands
(st, output) = commands.getstatusoutput('ls -a ~')
print [f for f in output.split('\n') if '.' in f ]




python