الحصول على فريد عنصر قائمة / الصفوف (tuple) يعطى حالة في بيثون

StackOverflow https://stackoverflow.com/questions/862158

سؤال

وكيف يمكنني الحصول على عنصر الصفوف (tuple) / قائمة معينة شرط في بيثون؟ يحدث هذا في كثير من الأحيان إلى حد ما، وأنا أبحث عن طريقة لطيفة-قليلة-خطوط pythonic للقيام بذلك.

ويمكن أن يكون هنا مثال:

والنظر في الصفوف (tuple) التي تحتوي على نقاط 2D تنسق مثل هذا:

points = [[x1, y1],[x2, y2],[x3, y3], ...]

وأود أن الحصول على في النقطة أن يقلل من المسافة الإقليدية نظرا نقطة عشوائية (قل [X، Y] على سبيل المثال، وجهة نظري هو: لم يتم احتواؤها في القائمة)

def dist(p1, p2):
    return sqrt((p2[0]-p1[0])**2+(p2[1]-p1[1])**2)
pointToCompare2 = [X, Y]

وأي شخص وجود فظيع بطانة واحد (أو لا) لذلك؟ شكرا!

هل كانت مفيدة؟

المحلول

min(points, key=lambda x: dist(pointToCompare2, x))

دقيقة هو المدمج في وظيفة .

نصائح أخرى

v = [1,3,2,4,7,3,3,4,5,11]

def get_num_uniques(v):
    count = []
    dup = []
tmp = []
for i in v:
    if i not in count:
        count.append(i)
    else:
        dup.append(i)
        count.remove(i)
for j in count:
    if j not in dup:
        tmp.append(j)

return tmp

#Call the function
print get_num_uniques(v)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top