سؤال

باستخدام مكتبة Python في NetworkX، قمت بإنشاء بياني غير مباشر لتمثيل شبكة علاقة بين مختلف الأشخاص. مقتطف من التعليمات البرمجية أدناه:

import networkx as nx
def creategraph(filepath):
    G=nx.Graph()
    #All the various nodes and edges are added in this stretch of code.
    return G

من ما أفهمه، كل عقدة هي في الأساس في القاموس. المشكلة التي تقدمها هي أنني أريد إجراء نوع مختلف من خوارزمية المشي العشوائية. الآن قبل أن تقفزني وتخبرني باستخدام إحدى الوظائف القياسية لمكتبة NetworkX، أريد أن أشير إلى أنها خوارزمية مخصصة. افترض أنني قمت بتشغيل دالة Creategraph، ويتم إرجاع كائن G وتخزينه في كائن آخر (دعونا نسميها x). أريد أن أبدأ في عقدة تسمى "بوب". بوب متصل أليس وجو. الآن، أريد إعادة تعيين Y للإشارة إلى أليس أو بوب عشوائيا (مع البيانات التي أتعامل معها، يمكن أن تحتوي عقدة معينة على مئات الحواف التي تتركها). كيف أذهب عن القيام بذلك؟ أيضا، كيف يمكنني التعامل مع إدخالات Unicode في Dict عقدة معينة (مثل كيف يتم سرد أليس وجو أدناه؟)

X = creategraph("filename")
Y=X['Bob']
print Y
>> {u'Alice': {}, u'Joe': {}}
هل كانت مفيدة؟

المحلول

ال خيار وظيفة في عشوائي الوحدة يمكن أن تساعد في عملية الاختيار. لا داعي للقلق حقا بالتمييز بين Unicode والسلسلة إلا إذا كنت تحاول كتابةها في مكان ما تكون أحيانا أحيانا أحرف Unicode غير قابلة للترجمة في شحن ASCII

الطريقة التي تستخدمها عشوائي. شوكون سيكون شيئا على غرار:

Y = Y[random.choice(Y.keys())]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top