f_
frhyme.code
•python-libs•โฑ ์•ฝ 2๋ถ„ ์†Œ์š”

NetworkX: AtlasView object

Error: โ€˜AtlasViewโ€™ object does not support item assignment

  • networkx๋กœ ์ฝ”๋”ฉ์„ ํ•˜๋‹ค๋ณด๋ฉด ์ข…์ข… ๋œจ๋Š” ์—๋Ÿฌ ์ค‘์—์„œ ๋‹ค์Œ์˜ ์—๋Ÿฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
TypeError: 'AtlasView' object does not support item assignment
  • ์—๋Ÿฌ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ํ•ด์„ํ•˜์ž๋ฉด โ€œAtlasView ์˜ค๋ธŒ์ ํŠธ๋Š” item assignment๋ฅผ ์–ด์šฉํ•˜์ง€ ์•Š๋Š”๋‹คโ€๋ผ๋Š” ๋ง์ด์ฃ .

What is AtlasView object?

  • AtlasView๋Š” โ€œdictionary of dictionary๋กœ ๋˜์–ด ์žˆ๋Š” Read-only ๊ตฌ์กฐโ€๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. networkx์—์„œ node, edge๋ฅผ ์ ‘๊ทผํ•  ๋•Œ, dictionary์ฒ˜๋Ÿผ []๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ AtlasView๋ผ๊ณ  ๋งํ•˜์ฃ .
  • ์ฆ‰, ์œ„์—์„œ ๋งํ•œ error code๊ฐ€ ๋–ด๋‹ค๋Š” ๊ฒƒ์€ Read-only์— ๋Œ€ํ•ด์„œ item assignment๋ฅผ ํ–ˆ๋‹ค๋Š” ๋ง์ด์ฃ .
  • ์œ„ ์—๋Ÿฌ๋Š” ๊ฐ€๋ น ๋‹ค์Œ๊ณผ ๊ฐ™์ด nx.Graph์— ๋Œ€ํ•ด์„œ []๋กœ ๋ฐ”๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
G[0]['weight']=10
  • ๋”ฐ๋ผ์„œ, ์œ„์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ , ์•„๋ž˜์ฒ˜๋Ÿผ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
G.nodes[0]['weight']=10

raw code

import networkx as nx

"""
What is Atlas view object
when, why happen?

TypeError: 'AtlasView' object does not support item assignment
"""
N = 6
p = 0.5
G = nx.fast_gnp_random_graph(N, p)


print(G.edges(data=True))
# ์•„๋ž˜์™€ ๊ฐ™์ด Graph์— ๋Œ€ํ•ด์„œ dictionary์ฒ˜๋Ÿผ ์ ‘๊ทผํ•˜์—ฌ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๊ฒฝ์šฐ, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
try:
    G[0]['weight']=10
    #G.nodes[0]['weight'] = 10 #์ด๋ ‡๊ฒŒ 
    print(G.nodes(data=True))
except Exception as e:
    print("SOMETHING WRONG")
    print("== error message")
    print(e)
    print("=="*20)

๐Ÿ’กRELATED ARTICLES ยท ํ•จ๊ป˜ ์ฝ์œผ๋ฉด ์ข‹์€ ์—ฐ๊ด€ ํฌ์ŠคํŠธ

๊ธ€ ์ฃผ์†Œ๊ฐ€ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.