導航:首頁 > 編程語言 > digraphpython

digraphpython

發布時間:2022-04-23 14:01:11

python digraph在哪個演算法包里

input的內容寫到一個列表裡,min()函數可以取最小和max()函數取最大值

② python networkx 程序運行

有這句了嗎
import matplotlib.pyplot as plt
因為從代碼上看不到plt的的相關說明

③ python 函數digraph在哪個演算法包里

恰巧今天我在學習PageRank遇到digraph的問題,踩了坑,來分享一下解決過程。其實用from pygraph.classes.digraph import digraph的時候就知道要下載pygraph第三方包。然而用pip install pygraph或者在pycharm里直接用「alt+enter」雖然可以安裝成功,並可以復制到項目的site-packages里,但是裡面並沒有diagram方法可以用。後來便到了gituhb里找到了python-graph-master包,解壓後直接把裡面的pygraph文件復制到項目的site-packages即可。附上鏈接網頁鏈接

④ 如何用python實現網路圖節點權重的添加以及如何把一個非連通的大網路圖分成多個小網路圖

networkx是python的一個庫,它為圖的數據結構提供演算法、生成器以及畫圖工具。近日在使用ryu進行最短路徑獲取,可以通過該庫來簡化工作量。該庫採用函數方式進行調用相應的api,其參數類型通常為圖對象。

函數API的調用,按照以下步驟來創建構建圖:

1.networkx的載入

在python中調用networkx通常只需要將該庫導入即可

import networkx as nx

2.圖對象的創建

networkx提供了四種基本圖對象:Graph,DiGraph,MultiGraph,MultiDiGraph。

使用如下調用方式,可以創建以上四種圖對象的空圖。

G=nx.Graph()
G=nx.DiGraph()
G=nx.MultiGraph()
G=nx.MultiDiGraph()
在 networkx中,圖的各個節點允許以哈希表對象來表示,而對於圖中邊的各個參量,則可以通過與邊相關聯的方式來標識,一般而言,對於權重,用weight作為keyword,而對於其他的參數,使用者可以採用任何除weight以外的keyword來命名。

3.在2中,創建的只是一副空圖,為了得到一個有節點、有邊的圖,一般採用下面這個函數:

1
2
G.add_edge(1,2) #default edge data=1
G.add_edge(1,2) #specify edge data=0.9
add_edge()函數,該函數在調用時需要傳入兩個參數u和v,以及多個可選參數

u和v即圖中的兩個節點,如果圖中不存在節點,在調用時會自動將這兩個節點添加入內,同時構建兩個節點之間的連接關系,可選參數通常指這條邊的權重等關系參量。需要注意的是,如果圖中已經存在了這條邊,重新進行添加時會對這條邊進行跟新操作(也就是覆蓋了原有的信息)。

對於該函數,除了上述的構建方式以外,還有以下幾種方式來創建邊:

1
2
3
G.add_edge(*e) # single edge as tuple of two nodes
G.add_edge(1, 3, weight=7, capacity=15, length=342.7) #using many arguements to create edge
G.add_edges_from( [(1, 2)] ) # add edges from iterable container
有時候,當採用默認方式創建邊以後,我們可能還會往邊裡面添加邊的相關參數,這時候,可以採用下面的方式來更新邊的信息:

1
2
3
4
5
#For non-string attribute keys, use subscript notation.
G.add_edge(1, 2)
G[1][2].update({0: 5}) #更新邊的信息
G.edges[1, 2].update({0: 5}) #更新邊的信息
#上述兩種更新方式,擇一選取即可
細心的朋友可能注意到我在寫創建圖的內容的時候,提到了add_edges_from()函數,該函數也是用來創建邊的,該方式與add_edges()略有不同,比之add_edges()採用一個一個節點的方式進行創建,它來的更為便利。這個函數在調用時,需要一個節點元組作為參數以及多個可選參數作為邊的信息。你可以這么傳遞:

默認創建節點之間的邊:

1
G.add_edges_from([(u,v)])
也可以這么寫,在創建的同時添加信息:

1
G.add_edges_from([(3, 4), (1, 4)], label='WN2898')
通過上述方式,就構建了一個3-4-1的圖的連接,並給每條邊打上了標簽。

由此你就可以創建出自己的圖模型了。

⑤ python networkx 已創建的圖怎麼查看它的所有邊

>>>G=nx.Graph()#orDiGraph,MultiGraph,MultiDiGraph,etc
>>>G.add_path([0,1,2])
>>>G.add_edge(2,3,weight=5)
>>>G.edges()
[(0,1),(1,2),(2,3)]
>>>G.edges(data=True)#defaultedgedatais{}(emptydictionary)
[(0,1,{}),(1,2,{}),(2,3,{'weight':5})]
>>>list(G.edges_iter(data='weight',default=1))
[(0,1,1),(1,2,1),(2,3,5)]
>>>G.edges([0,3])
[(0,1),(3,2)]
>>>G.edges(0)
[(0,1)]

⑥ Python 有什麼奇技淫巧

看看下面這些算不算1.元類(metaclass)PyPy的源碼里有個pair和extendabletype"""Twomagictricksforclasses:classX:__metaclass__=extendabletype#insomeotherfileclass__extend__(X):#hthesecondtrick,whichletsyoubuildmethodswhose'self':class__extend__(pairtype(X,Y)):attribute=42defmethod((x,y),other,arguments):pair(x,y).attributepair(x,y).method(other,arguments)atgointothepair(),withtheusualrulesofmethod/attributeoverridingin(pairsof)subclasses.Formoreinformation,seetest_pairtype."""classextendabletype(type):"""Atypewithasyntaxtrick:'class__extend__(t)''t'insteadofcreatinganewsubclass."""def__new__(cls,name,bases,dict):ifname=='__extend__':forclsinbases:forkey,valueindict.items():ifkey=='__mole__':continue#?setattr(cls,key,value)returnNoneelse:returnsuper(extendabletype,cls).__new__(cls,name,bases,dict)defpair(a,b):"""Returnapairobject."""tp=pairtype(a.__class__,b.__class__)returntp((a,b))#={}defpairtype(cls1,cls2):"""type(pair(a,b))ispairtype(a.__class__,b.__class__)."""try:pair=pairtypecache[cls1,cls2]exceptKeyError:name='pairtype(%s,%s)'%(cls1.__name__,cls2.__name__)bases1=[pairtype(base1,cls2)forbase1incls1.__bases__]bases2=[pairtype(cls1,base2)forbase2incls2.__bases__]bases=tuple(bases1+bases2)or(tuple,)#'tuple':ultimatebasepair=pairtypecache[cls1,cls2]=extendabletype(name,bases,{})returnpair先說extendabletype。嘛其實注釋已經說得聽明白了,就是一個C#裡面的partialclass的Python實現。然後是pair和pairtype。pairtype就是根據兩個類創建一個新的類,這個類繼承自使用這兩個類的基類構造的pairtype(有點繞……)或者tuple。有啥用呢?可以拿來實現multimethod。class__extend__(pairtype(int,int)):deffoo((x,y)):print'int-int:%s-%s'%(x,y)class__extend__(pairtype(bool,bool)):defbar((x,y)):print'bool-bool:%s-%s'%(x,y)pair(False,True).foo()#prints'int-int:False,True'pair(123,True).foo()#prints'int-int:123,True'pair(False,True).bar()#prints'bool-bool:False,True'pair(123,True).bar()#Oops,nosuchmethod好像這個例子里元類只是個打輔助的角色,好玩的都在那個pair里……再換一個。classGameObjectMeta(type):def__new__(mcls,clsname,bases,_dict):fork,vin_dict.items():ifisinstance(v,(list,set)):_dict[k]=tuple(v)#mutableobjnotallowedcls=type.__new__(mcls,clsname,bases,_dict)all_gameobjects.add(cls)forbinbases:game_objects_hierarchy.add((b,cls))returncls@staticmethoddef_mp_gameobject_hierarchy():withopen('/dev/shm/gomap.dot','w')asf:f.write('digraph{\nrankdir=LR;\n')f.write('\n'.join(['"%s"->"%s";'%(a.__name__,b.__name__)fora,bingame_objects_hierarchy]))f.write('}')def__setattr__(cls,field,v):type.__setattr__(cls,field,v)iffieldin('ui_meta',):returnlog.warning('SetAttr:%s.%s=%s'%(cls.__name__,field,repr(v)))這個是從我寫的三國殺游戲中提取的一段代碼(點我簽名上的鏈接)。大意就是把class上所有可變的容器都換成不可變的,然後記錄下繼承關系。曾經被這個問題坑過,class上的值是全局共享的,邏輯代碼一不小心修改了class上的值,單機測試的時候是測不出來的,然後放到線上……就悲劇了……當時絞盡腦汁沒有想到是這個問題硬生生的回滾了……發現了問題之後就加上了這個東西,不允許修改class上的東西。記錄下繼承關系是為了畫類圖。還有就是常用的做數據注入metadata={}defgen_metafunc(_for):defmetafunc(clsname,bases,_dict):meta_for=getattr(_for,clsname)meta_for.ui_meta=UIMetaDescriptor()ifmeta_forinmetadata:raiseException('%sui_metaredefinition!'%meta_for)metadata[meta_for]=_.thbimportcharacters__metaclass__=gen_metafunc(characters.sakuya)classSakuya:#於是這個就不是類了,而是作為數據存到了metadata這個dict里char_name=u'十六夜咲夜'port_image='thb-portrait-sakuya'figure_image='thb-figure-sakuya'miss_sound_effect='thb-cv-sakuya_miss'description=(u'|DB完全瀟灑的PAD長十六夜咲夜體力:4|r\n\n'u'|G月時計|r:|B鎖定技|r,准備階段開始時,你執行一個額外的出牌階段。\n\n'u'|G飛刀|r:你可以將一張裝備牌當【彈幕】使用或打出。按此法使用的【彈幕】無距離限制。\n\n'u'|DB(畫師:小D@星の妄想鄉,CV:VV)|r')Ruby黨不要噴,我知道你們可以做的更優雅……2.Python沙盒逃逸刷新三觀的Python代碼3.PEP302NewImportHook最近在把剛才提到的純Python游戲向Unity引擎上移植。玩過Unity的就會知道,Unity的游戲的資源都是打包在一起的,沒有單獨的文件,Python解釋器就不高興了……於是寫了importhook,用Unity提供的API來讀py文件。#-*-coding:utf-8-*-#--stdlib--importimpimportsys#--thirdparty--#--own--fromclrimportUnityEngine,WarpGateController#--code--classUnityResourceImporter(object):known_builtin=('sys','imp','cStringIO','gevent_core','gevent_ares','gevent_util','gevent_semaphore','msgpack_packer','msgpack_unpacker','UnityEngine',)def__init__(self,bases,unity_loader):self.bases=basesself.last_fullname=''self.last_text=''self.last_ispkg=Falseself.unity_load=unity_loaderdeffind_mole(self,fullname,path=None):iffullnameinsys.moles:returnselfhead=fullname.split('.')[0]ifheadinself.known_builtin:returnNonerst=self.do_load_mole(fullname)ifrst:self.last_text,self.last_ispkg=rstself.last_fullname=fullnamereturnselfelse:returnNonedefload_mole(self,fullname):iffullnameinsys.moles:returnsys.moles[fullname]iffullname!=self.last_fullname:self.find_mole(fullname)try:code=self.last_textispkg=self.last_ispkgmod=sys.moles.setdefault(fullname,imp.new_mole(fullname))mod.__file__=""%fullnamemod.__loader__=selfifispkg:mod.__path__=[]mod.__package__=fullnameelse:mod.__package__=fullname.rpartition('.')[0]co=compile(code,mod.__file__,'exec')exec(co,mod.__dict__)returnmodexceptExceptionase:UnityEngine.Debug.LogError('Errorimporting%s%s'%(fullname,e))raiseImportError(e)defdo_load_mole(self,fullname):fn=fullname.replace('.','/')asset=self.try_load(fn+'.py')ifassetisnotNone:returnasset,Falseasset=self.try_load(fn+'/__init__.py')ifassetisnotNone:returnasset,Truedeftry_load(self,filename):forbinself.bases:asset=self.unity_load(b+filename)ifassetisnotNone:returnassetreturnNonesys.meta_path.append(UnityResourceImporter(['Python/THBattle/','Python/Site/','Python/Stdlib/',],WarpGateController.GetTextAsset))需要的extensionmole都靜態編譯到解釋器里了,所以沒考慮。4.可以批量執行操作的listclassBatchList(list):def__getattribute__(self,name):try:list_attr=list.__getattribute__(self,name)returnlist_attrexceptAttributeError:passreturnlist.__getattribute__(self,'__class__')(getattr(i,name)foriinself)def__call__(self,*a,**k):returnlist.__getattribute__(self,'__class__')(f(*a,**k)forfinself)classFoo(object):def__init__(self,v):self.value=vdeffoo(self):print'Foo!',self.valuefoo=Foo(1)foo.foo()#Foo!1foos=BatchList(Foo(i)foriinxrange(10))foos.value#BatchList([0,1,2,3,,9])foos.foo()#你能猜到的

⑦ VI手冊 怎麼翻譯

VI手冊已經有中文版本無需翻譯,在開源網站:http://vimcdoc.sourceforge.net/直接可以下載或者在線瀏覽。
VI手冊按照慣例是help.txt的格式,主要內容如下:

HELP
*help.txt* For Vim version 7.4. 最近更新: 2013年8月

VIM - 主幫助文件
k
移動: 使用游標鍵,或者用 "h" 向左, h l
"j" 向下,"k" 向上,"l" 向右。 j
關閉本窗口: 使用 ":q<Enter>"。
離開 Vim: 使用 ":qa!<Enter>" (當心,所有的改動都會丟失!)。

跳轉到一個主題: 將游標置於標簽 (例如 |bars|) 上然後輸入 CTRL-]。
使用滑鼠: ":set mouse=a" 啟動對滑鼠的支持 (用於 xterm 或 GUI)。
在標簽 (例如 |bars|) 上雙擊。
跳回: 鍵入 CTRL-T 或 CTRL-O (重復則繼續向後)。

獲取特定幫助: 在 |:help| 命令後給出參數可以直接跳轉到任何的幫助主題。
還可以進一步指定上下文:
*help-context*
類別 前綴 例子
普通模式命令 (無) :help x
可視模式命令 v_ :help v_u
插入模式命令 i_ :help i_<Esc>
命令行模式命令 : :help :quit
命令行編輯 c_ :help c_<Del>
Vim 命令參數 - :help -r
選項 ' :help 'textwidth'
查找幫助: 鍵入 ":help word",接著鍵入 CTRL-D 可以看到匹配 "word" 的
幫助主題。
也可用 ":helpgrep word"。|:helpgrep|

VIM 代表 Vi IMproved。VIM 主要由 Bram Moolenaar 編寫,但沒有許多其他人的幫助是
不可能的。請見 |credits|。

*doc-file-list* *Q_ct*
基礎:
|quickref| 總覽最常用的命令
|tutor| 面向初學者的 30 分鍾教程
|ing| 版權信息
|iccf| 資助烏干達貧困兒童
|sponsor| 贊助 Vim 的開發,成為一名注冊用戶
|www| 互聯網上的 Vim
|bugs| 如何提交漏洞報告

用戶手冊: 這些文件解釋如何完成一項編輯任務。

|usr_toc.txt| 目錄

初步知識
|usr_01.txt| 關於本手冊
|usr_02.txt| Vim 初步
|usr_03.txt| 移動
|usr_04.txt| 做小改動
|usr_05.txt| 選項設置
|usr_06.txt| 使用語法高亮
|usr_07.txt| 編輯多個文件
|usr_08.txt| 分割窗口
|usr_09.txt| 使用 GUI 版本
|usr_10.txt| 做大修改
|usr_11.txt| 從崩潰中恢復
|usr_12.txt| 小竅門

高效地編輯
|usr_20.txt| 快速鍵入命令行
|usr_21.txt| 離開和回來
|usr_22.txt| 尋找要編輯的文件
|usr_23.txt| 編輯特殊文件
|usr_24.txt| 快速插入
|usr_25.txt| 編輯帶格式的文本
|usr_26.txt| 重復
|usr_27.txt| 查找命令及模式
|usr_28.txt| 折疊
|usr_29.txt| 在代碼間移動
|usr_30.txt| 編輯程序
|usr_31.txt| 利用 GUI
|usr_32.txt| 撤銷樹

調節 Vim
|usr_40.txt| 創建新的命令
|usr_41.txt| 編寫 Vim 腳本
|usr_42.txt| 添加新的菜單
|usr_43.txt| 使用文件類型
|usr_44.txt| 自定義語法高亮
|usr_45.txt| 選擇你的語言

讓 Vim 工作
|usr_90.txt| 安裝 Vim

參考手冊: 這些文件詳細地解釋 Vim 的每個細節。 *reference_toc*

一般主題
|intro.txt| 對 Vim 的一般介紹;幫助文件中所使用的符號
|help.txt| 總覽及快速參考 (本文件)
|helphelp.txt| 關於如何使用幫助文件
|index.txt| 以字母順序排列的命令索引
|help-tags| 可跳轉的所有標簽 (標簽索引)
|howto.txt| 如何完成最常見的編輯任務
|tips.txt| Vim 的各種竅門
|message.txt| (錯誤) 信息及解釋
|quotes.txt| Vim 的用戶評價
|todo.txt| 已知的問題以及擴展計劃
|develop.txt| Vim 的開發
|debug.txt| 調試 Vim 自身
|uganda.txt| Vim 發布條件和怎麼花你的 money

基本編輯
|starting.txt| 啟動 Vim,Vim 命令參數,初始化
|editing.txt| 編輯和寫入文件
|motion.txt| 有關移動的命令
|scroll.txt| 在窗口中滾動文本
|insert.txt| 插入模式和替換模式
|change.txt| 刪除和替換文本
|indent.txt| C 及其它語言的自動縮進
|undo.txt| 撤消和重做
|repeat.txt| 重復命令,Vim 腳本及調試
|visual.txt| 使用可視模式 (選擇一個文本區域)
|various.txt| 各種其它命令
|recover.txt| 從崩潰中恢復

高級編輯
|cmdline.txt| 命令行編輯
|options.txt| 所有選項的描述
|pattern.txt| 正則表達式及查找命令
|map.txt| 鍵盤映射及縮寫
|tagsrch.txt| 標簽及特殊查找
|quickfix.txt| 支持快速 編輯-編譯-修正 循環的命令
|windows.txt| 使用多窗口多緩沖區的命令
|tabpage.txt| 使用多個標簽頁的命令
|syntax.txt| 語法高亮
|spell.txt| 拼寫檢查
|diff.txt| 編輯同一文本的兩到四個版本
|autocmd.txt| 當事件發生時自動執行命令
|filetype.txt| 對某一類型文件的專有設定
|eval.txt| 表達式求值,條件執行命令
|fold.txt| 隱藏 (折疊) 一定范圍內的文本

特殊問題
|print.txt| 列印
|remote.txt| 將 Vim 用作伺服器/客戶端
|term.txt| 使用不同終端和滑鼠
|digraph.txt| 可用的二合字母清單
|mbyte.txt| 多位元組文本支持
|mlang.txt| 非英語語言支持
|arabic.txt| 阿拉伯語支持及編輯
|farsi.txt| Farsi (波斯語) 編輯
|hebrew.txt| 希伯來語支持及編輯
|russian.txt| 俄羅斯語支持及編輯
|ft_ada.txt| Ada (編程語言) 支持
|ft_sql.txt| SQL 文件類型插件相關
|hangulin.txt| Hangul (韓語) 輸入模式
|rileft.txt| 從右向左的編輯模式

GUI
|gui.txt| 圖形用戶界面 (GUI)
|gui_w16.txt| Windows 3.1 GUI
|gui_w32.txt| Win32 GUI
|gui_x11.txt| X11 GUI

各種介面
|if_cscop.txt| 聯用 cscope 與 Vim
|if_lua.txt| Lua 介面
|if_mzsch.txt| MzScheme 介面
|if_perl.txt| Perl 介面
|if_pyth.txt| Python 介面
|if_sniff.txt| SNiFF+ 介面
|if_tcl.txt| Tcl 介面
|if_ole.txt| Win32 下的 OLE 介面
|if_ruby.txt| Ruby 介面
|debugger.txt| 與調試程序的介面
|workshop.txt| Sun Visual Workshop 介面
|netbeans.txt| NetBeans 外部編輯器介面
|sign.txt| 調試標號

版本
|vi_diff.txt| Vim 和 Vi 之間的主要區別
|version4.txt| Vim 3.0 和 4.x 版本的區別
|version5.txt| Vim 4.6 和 5.x 版本的區別
|version6.txt| Vim 5.7 和 6.x 版本的區別
|version7.txt| Vim 6.4 和 7.x 版本的區別
*sys-file-list*
特定系統相關
|os_390.txt| OS/390 Unix
|os_amiga.txt| Amiga
|os_beos.txt| BeOS 和 BeBox
|os_dos.txt| MS-DOS 和 MS-Windows NT/95 通用的條目
|os_mac.txt| Macintosh
|os_mint.txt| Atari MiNT
|os_msdos.txt| MS-DOS (純 DOS 及 Windows 內的 DOS 窗口)
|os_os2.txt| OS/2
|os_qnx.txt| QNX
|os_risc.txt| RISC-OS
|os_unix.txt| Unix
|os_vms.txt| VMS
|os_win32.txt| MS-Windows 95/98/NT
*standard-plugin-list*
標准插件
|pi_getscript.txt| 下載 Vim 腳本的最新版本
|pi_gzip.txt| 讀寫壓縮過的文件
|pi_netrw.txt| 通過網路讀寫文件
|pi_paren.txt| 高亮匹配括弧
|pi_tar.txt| Tar 文件探索器
|pi_vimball.txt| 創建自安裝的 Vim 腳本
|pi_zip.txt| Zip 歸檔探索器

本地附加文檔
|local-additions| 請查閱英文文檔

*bars* Bars 舉例

現在你已經通過 CTRL-] 或雙擊滑鼠跳轉到這里了,CTRL-T、CTRL-O、g<RightMouse>、
或 <C-RightMouse> 可以用來跳回到你原來的地方。

注意 標簽包含在兩個 | 字元之間,但打開高亮時這些字元被隱藏,這樣更易於命令的閱
讀。

不過,你可以在任何單詞上按 CTRL-],即使該單詞不出現在 | 之間也無妨。Vim 會試圖
尋找該單詞的相關幫助,尤其是單引號之間的選項名,如 'compatible'。

vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl:

⑧ python中\n 是什麼意思

換行。

比如,print "hello world"效果就是

hello

world

" "就是一個換行符。

是轉義的意思,' '是換行,' '是tab,'\'是,

是在編寫程序中句子太長,人為換行後加上但print出來是一整行。

閱讀全文

與digraphpython相關的資料

熱點內容
如何訪問對方共享文件夾 瀏覽:299
python28 瀏覽:8
神奇的安卓怎麼下載 瀏覽:813
鸕鶿等待命令 瀏覽:355
pdf中刪除內容 瀏覽:408
觸控板怎麼壓縮文件夾 瀏覽:509
it165網源碼 瀏覽:398
什麼是資料庫伺服器地址 瀏覽:424
atomicinteger源碼 瀏覽:632
程序員打架活動視頻 瀏覽:225
視頻網站加密原理 瀏覽:207
python圖像區域識別 瀏覽:263
javaweb項目html源碼 瀏覽:463
cad三點畫圓命令 瀏覽:242
安卓手機中英文怎麼設置 瀏覽:880
安卓怎麼做試卷 瀏覽:887
xp系統怎麼做域伺服器 瀏覽:305
九游游戲app叫什麼 瀏覽:624
無壓縮機除濕機 瀏覽:335
柱為什麼加密區 瀏覽:621