绘制python对象属性和对象存储在列表中

5 python list object matplotlib

我有对象存储在python 中名为lst的列表中.我需要将一个对象属性绘制为绘图.

import numpy as np
import matplotlib.pyplot as plt

class Particle(object):
    def __init__(self, value = 0, weight = 0):
        self.value = value
        self.weight = weight
lst = []
for x in range(0,10):
    lst.append(Particle(value=np.random.random_integers(10), weight = 1))
Run Code Online (Sandbox Code Playgroud)

我试过这个并且它有效,但我认为它不是非常'pythonic'的方式:

temp = [] #any better idea? 
for x in range(0,len(lst)):
    temp.append(l[x].value)
plt.plot(temp, 'ro')
Run Code Online (Sandbox Code Playgroud)

你有什么建议,如何用更多的pythonic方式来填充它?谢谢

Ffi*_*ydd 2

使用列表理解来生成值列表。

import numpy as np
import matplotlib.pyplot as plt

class Particle(object):
    def __init__(self, value = 0, weight = 0):
        self.value = value
        self.weight = weight
lst = []
for x in range(0,10):
    lst.append(Particle(value=np.random.random_integers(10), weight = 1))

values = [x.value for x in lst]

plt.plot(values, 'ro')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

列表理解等效于以下代码:

values = []
for x in lst:
    values.append(x.value)
Run Code Online (Sandbox Code Playgroud)

lst请注意,您还可以使用另一个列表理解来整理集合的创建

lst = [(Particle(value=np.random.random_integers(10), weight=1) for _ in range(10)]
Run Code Online (Sandbox Code Playgroud)