Я пытаюсь взять одну строку и добавить ее к каждой строке, содержащейся в списке, а затем получить новый список с завершенными строками. Пример:
list = ['foo', 'fob', 'faz', 'funk']
string = 'bar'
*magic*
list2 = ['foobar', 'fobbar', 'fazbar', 'funkbar']
Я пытался зацикливаться и пытаться понять списки, но это был мусор. Как всегда, любая помощь, высоко ценится.
list
так как это встроенный.Ответы:
Самый простой способ сделать это с помощью понимания списка:
Обратите внимание, что я избегал использования встроенных имен, например,
list
потому что это скрывает или скрывает встроенные имена, что очень плохо.Кроме того, если вам на самом деле не нужен список, а нужен только итератор, выражение генератора может быть более эффективным (хотя это вряд ли имеет значение для коротких списков):
Они очень мощные, гибкие и лаконичные. Каждый хороший программист на Python должен научиться владеть ими.
источник
(s + mystring for s in mylist)
["{}) {}".format(i, s) for i, s in enumerate(mylist)]
list2 = ["mystring" + s for s in mylist]
=list2 = ['barfoo', 'barfob', 'barfaz', 'barfunk']
Это напечатает:
источник
map
кажется мне правильным инструментом для работы.См. Этот раздел о функциональных инструментах программирования для большего количества примеров
map
.источник
Запускаем следующий эксперимент питоническим способом:
кажется на ~ 35% быстрее, чем очевидное использование цикла for:
эксперимент
Полученные результаты
источник
Расширим немного до «Добавление списка строк в список строк»:
Результат:
Объект dtype может быть дополнительно преобразован
источник
at = np.full(fill_value='@',shape=1,dtype=object)
или просто:at = np.array("@", dtype=object)
Вы можете использовать лямбду внутри карты в Python. написал генератор серых кодов. https://github.com/rdm750/rdm750.github.io/blob/master/python/gray_code_generator.py # ваш код идет здесь '' 'n-1 битный код, с 0 перед каждым словом, после которого следует n-1 битный код в обратном порядке, с 1 перед каждым словом. «»»
источник
Обновление с большим количеством опций
Избегайте использования ключевых слов в качестве переменных, таких как «список», вместо этого переименуйте «список» в «список1»
источник
Вот простой ответ, используя
pandas
.источник
И не используйте
list
в качестве имени; это затеняет встроенный тип.источник
'%sbar' % (x,)
вместо'%sbar' % x
? Почему нетx + 'bar'
?Использование таких имен, как «список», для имен ваших переменных - это плохо, так как это перезапишет / переопределит встроенные функции.
источник
На всякий случай
источник