it-swarm.asia

تعيين بيثون إلى القائمة

كيف يمكنني تحويل مجموعة إلى قائمة في بيثون؟ عن طريق

a = set(["Blah", "Hello"])
a = list(a)

لا يعمل هذا يعطيني:

TypeError: 'set' object is not callable
136
user825286

الكود يعمل يعمل (تم اختباره باستخدام cpython 2.4 و 2.5 و 2.6 و 2.7 و 3.1 و 3.2):

>>> a = set(["Blah", "Hello"])
>>> a = list(a) # You probably wrote a = list(a()) here or list = set() above
>>> a
['Blah', 'Hello']

تحقق من أنك لم تستبدل list بالصدفة:

>>> assert list == __builtins__.list
223
phihag

لقد ألقيت الظلال على المجموعة المضمنة من خلال استخدامها بطريق الخطأ كاسم متغير ، فإليك طريقة بسيطة لتكرار الخطأ

>>> set=set()
>>> set=set()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object is not callable

Rebinds السطر الأول لتعيين مثيل من مجموعة. السطر الثاني يحاول استدعاء المثيل الذي فشل بالطبع.

فيما يلي إصدار أقل إرباكًا يستخدم أسماء مختلفة لكل متغير. باستخدام مترجم جديد

>>> a=set()
>>> b=a()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object is not callable

نأمل أن يكون من الواضح أن استدعاء a خطأ

66
John La Rooy

قبل أن تكتب set(XXXXX) ، استخدمت "set" كمتغير على سبيل المثال.

set = 90 #you have used "set" as an object
…
…
a = set(["Blah", "Hello"])
a = list(a)
25
Zhang Yiwei

هذا سيفي بالغرض:

>>> t = [1,1,2,2,3,3,4,5]
>>> print list(set(t))
[1,2,3,4,5]

ومع ذلك ، إذا استخدمت "قائمة" أو "تعيين" كاسم متغير ، فستحصل على:

TypeError: 'set' object is not callable

على سبيل المثال:

>>> set = [1,1,2,2,3,3,4,5]
>>> print list(set(set))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable

سيحدث نفس الخطأ إذا كنت قد استخدمت "قائمة" كاسم متغير.

13
Nick
s = set([1,2,3])
print [ x for x in iter(s) ]
6
peerxu

يعمل الرمز الخاص بك مع Python 3.2.1 على Win7 و x64

a = set(["Blah", "Hello"])
a = list(a)
type(a)
<class 'list'>
3
Wendal Chen

حاول استخدام مجموعة من وظائف الخريطة و lambda:

aList = map( lambda x: x, set ([1, 2, 6, 9, 0]) )

إنها طريقة مريحة للغاية إذا كان لديك مجموعة من الأرقام في السلسلة وترغب في تحويلها إلى قائمة الأعداد الصحيحة:

aList = map( lambda x: int(x), set (['1', '2', '3', '7', '12']) )
2
IgobyE