Saya memiliki satu set seperti ini:
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
Bagaimana cara menambahkan nilai [0,1,2,3,4,5,6,7,8,9,10]
ke set ini?
keep.update(yoursequenceofvalues)
misalnya, keep.update(xrange(11))
untuk contoh spesifik Anda. Atau, jika Anda harus menghasilkan nilai dalam satu lingkaran untuk beberapa alasan lain,
for ...whatever...:
onemorevalue = ...whatever...
keep.add(onemorevalue)
Tetapi, tentu saja, melakukannya secara massal dengan satu .update
panggilan lebih cepat dan lebih mudah, jika sebaliknya layak dilakukan.
.add
menambahkan satu item,.update
menambahkan beberapa item. Apakah itu benar?.add
mengharapkan satu jenis hashable, sementara.update
mengharapkan objek yang dapat diubah.add
, bukan.update
, saya baru-baru ini menghadapi bug yang licik karena detail kecil ini.Tentukan set
Gunakan tambah untuk menambahkan nilai tunggal
Gunakan pembaruan untuk menambahkan elemen dari tupel, set, daftar atau set-beku
Jika Anda ingin menambahkan tuple atau set beku, gunakan add
Catatan: Karena elemen set harus hashable, dan daftar dianggap bisa berubah, Anda tidak bisa menambahkan daftar ke set. Anda juga tidak bisa menambahkan set lain ke set. Namun Anda dapat, menambahkan elemen dari daftar dan set seperti yang ditunjukkan dengan metode ".update".
sumber
Anda juga dapat menggunakan
|
operator untuk menggabungkan dua set ( gabungan dalam teori set):Atau formulir yang lebih pendek menggunakan
|=
:Catatan: Dalam versi sebelum Python 2.7, gunakan
set([...])
sebagai ganti{...}
.sumber
my_sets
, maka Anda dapat melakukannyabig_set = my_sets[0].union(*my_sets[1:])
untuk menggabungkan semuanyaGunakan
update
seperti ini:sumber
Pertanyaan ini adalah yang pertama yang muncul di Google ketika seseorang mencari "Python cara menambahkan elemen ke set", jadi perlu dicatat secara eksplisit bahwa, jika Anda ingin menambahkan seluruh string ke set, harus ditambahkan dengan
.add()
, tidak.update()
.Katakanlah Anda memiliki string
foo_str
yang isinya'this is a sentence'
, dan Anda memiliki beberapa set yangbar_set
sama denganset()
.Jika Anda melakukannya
bar_set.update(foo_str)
, isi set Anda akan menjadi{'t', 'a', ' ', 'e', 's', 'n', 'h', 'c', 'i'}
.Jika Anda melakukannya
bar_set.add(foo_str)
, isi set Anda akan menjadi{'this is a sentence'}
.sumber
Cara saya ingin melakukan ini adalah untuk mengubah set asli dan nilai-nilai yang ingin saya tambahkan ke dalam daftar, menambahkannya, dan kemudian mengubahnya kembali menjadi set, seperti ini:
Dengan cara ini saya juga dapat dengan mudah menambahkan beberapa set menggunakan logika yang sama, yang membuat saya dan
TypeError: unhashable type: 'set'
jika saya mencoba melakukannya dengan.update()
metode ini.sumber
Atau
sumber
Bagi saya, dalam Python 3, ini berfungsi sederhana dengan cara ini:
Saya tidak tahu apakah itu benar ...
sumber