По сути, я пытаюсь объединить записи в набор, чтобы вывести одну строку. Я пытаюсь использовать синтаксис, аналогичный функции объединения для списков. Вот моя попытка:
list = ["gathi-109","itcg-0932","mx1-35316"]
set_1 = set(list)
set_2 = set(["mx1-35316"])
set_3 = set_1 - set_2
print set_3.join(", ")
Однако я получаю эту ошибку: AttributeError: 'set' object has no attribute 'join'
Что эквивалентно призыву для наборов?
python
list
set
python-2.7
Спенсер
источник
источник
', '.join(str(s) for s in set_3)
У наборов нет
join
метода, но вы можете его использоватьstr.join
.', '.join(set_3)
str.join
Метод будет работать на любой Iterable объекта , включая списки и множество.Примечание: будьте осторожны при использовании этого на наборах, содержащих целые числа; вам нужно будет преобразовать целые числа в строки перед вызовом присоединения. Например
set_4 = {1, 2} ', '.join(str(s) for s in set_4)
источник
join
Вызывается на строке:print ", ".join(set_3)
источник
Такого метода нет
set
ни у, ни у строки:list
join
','.join(set(['a','b','c']))
Кстати, вы не должны использовать имя
list
для своих переменных. Дайте емуlist_
,my_list
или другое название , потому чтоlist
очень часто используется функция питона.источник
У наборов нет заказа, поэтому вы можете потерять свой заказ, когда конвертируете свой список в набор, то есть:
>>> orderedVars = ['0', '1', '2', '3'] >>> setVars = set(orderedVars) >>> print setVars ('4', '2', '3', '1')
Обычно порядок остается, но для больших наборов его почти наверняка не будет.
Наконец, на всякий случай, если люди задаются вопросом, вам не нужна ',' в соединении.
Просто: '' .join (набор)
:)
источник
Я думаю, у вас это просто наоборот.
print ", ".join(set_3)
источник
print(", ".join(set_3))
У вас есть оператор соединения в обратном порядке:
print ', '.join(set_3)
источник
Я написал метод, который обрабатывает следующие крайние случаи:
", ".join({'abc'})
вернется"a, b, c"
. Мой желаемый результат был"abc"
.""
def set_to_str(set_to_convert, separator=", "): set_size = len(set_to_convert) if not set_size: return "" elif set_size == 1: (element,) = set_to_convert return str(element) else: return separator.join(map(str, set_to_convert))
источник
" ".join({'abc'})
для получения желаемого о / п"abc"
. исполняемый код в repl.it"".join(set(ip_data))
дает случайный порядок букв (например, 'bca'), потому что set создает три элемента {'a', 'b', 'c'}, но не сохраняет порядок.