Zasadniczo próbuję połączyć wpisy w zestaw, aby uzyskać jeden ciąg. Próbuję użyć składni podobnej do funkcji łączenia list. Oto moja próba:
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(", ")
Jednak otrzymuję ten błąd: AttributeError: 'set' object has no attribute 'join'
Jakie jest równoważne wezwanie do zestawów?
python
list
set
python-2.7
Spencer
źródło
źródło
', '.join(str(s) for s in set_3)
Zestawy nie mają
join
metody, ale możesz jej użyćstr.join
.', '.join(set_3)
str.join
Metoda będzie działać na każdym iterable obiektu w tym listy i zestawów.Uwaga: bądź ostrożny przy używaniu tego na zestawach zawierających liczby całkowite; będziesz musiał przekonwertować liczby całkowite na łańcuchy przed wywołaniem złączenia. Na przykład
set_4 = {1, 2} ', '.join(str(s) for s in set_4)
źródło
join
Nazywa na ciąg znaków:print ", ".join(set_3)
źródło
Ani metoda
set
ani ta nielist
ma takiej metodyjoin
, ma ją string:','.join(set(['a','b','c']))
Nawiasem mówiąc, nie powinieneś używać nazw
list
dla swoich zmiennych. Daj mulist_
,my_list
lub jakąś inną nazwę, ponieważlist
jest bardzo często używane funkcje Pythona.źródło
Seta nie mają rozkaz - więc może stracić swoje zamówienie podczas konwersji listy do zestawu, tj:
>>> orderedVars = ['0', '1', '2', '3'] >>> setVars = set(orderedVars) >>> print setVars ('4', '2', '3', '1')
Generalnie kolejność pozostanie, ale w przypadku dużych zestawów prawie na pewno nie.
Wreszcie, po prostu na wypadek, gdyby ludzie się zastanawiali, nie potrzebujesz znaku „,” w złączu.
Po prostu: „” .join (zestaw)
:)
źródło
Myślę, że masz to od tyłu.
print ", ".join(set_3)
źródło
print(", ".join(set_3))
Masz instrukcję join wstecz, spróbuj:
print ', '.join(set_3)
źródło
Napisałem metodę, która obsługuje następujące przypadki skrajne:
", ".join({'abc'})
Powróci"a, b, c"
. Moje pożądane wyjście to"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))
źródło
" ".join({'abc'})
uzyskać żądane o / p"abc"
. kod wykonywalny w repl.it"".join(set(ip_data))
podaje losową kolejność liter (na przykład „bca”), ponieważ zbiór tworzy trzy elementy {'a', 'b', 'c'}, ale nie zachowuje porządku.