python删除类方法_Python类别-Set&删除方法?

1586010002-jmsa.png

First I'd like to mention that I am completely new to Python and I've found it a bit difficult to transition from C++. I apologize if my question comes off as elementary.

I have a class for 'songs' which I have initialized as following. It takes in data from a file that contains a song's ID, name, genre etc. all separated by ::.

def __init__(self):

self.song_names = dict()

self.song_genres = dict()

def load_songs(self, song_id):

f = open(song_id)

for line in f:

line = line.rstrip()

component = line.split("::")

sid = components[0]

same= components[1]

sgenre=components[2]

self.song_names[mid] = sname

self.song_genres[mid] = sgenre

f.close()

The program also takes in data from a file with 'users' information, separated as

UserID::Gender::Age::Occupation::Zip etc. and a file with 'ratings'.

I would I implement a function like def set_song(sid, list((title,genres)))

and something like delete_song(sid) ?

I'm going to have to wind up doing a ton more other functions, but if someone could help me with those two - at least to have a better idea of structure and syntax - handling the others should be easier.

解决方案

Why not just inherit from dict and use its interface? That way you can use Python's standard mapping operations instead of rolling your own:

class Songs(dict):

def load(self, song_id):

with open(song_id, 'r') as f:

for line in f:

sid, name, genre = line.rstrip().split('::')[:3]

self[sid] = [name, genre]

mysongs = Songs()

mysongs.load('barnes_and_barnes__fish_heads')

mysongs['barnes_and_barnes__fish_heads'] = ['roly poly', 'strange'] # set

del mysongs['barnes_and_barnes__fish_heads'] # delete

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
能帮我优化一下下面这段代码并增加一些注释吗import matplotlib matplotlib.use('Qt5Agg') from numpy import pi, sin import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import Slider, Button, RadioButtons def signal(amp, freq): return amp * sin(2 * pi * freq * t) axis_color = 'lightgoldenrodyellow' fig = plt.figure() ax = fig.add_subplot(111) fig.subplots_adjust(left=0.25, bottom=0.25) t = np.arange(-10, 10.0, 0.001) [line] = ax.plot(t, signal(5, 2), linewidth=2, color='red') ax.set_xlim([0, 1]) ax.set_ylim([-10, 10]) zoom_slider_ax = fig.add_axes([0.25, 0.1, 0.65, 0.03], facecolor=axis_color) zoom_slider = Slider(zoom_slider_ax, 'Zoom', -1, 1, valinit=0) def sliders_on_changed(val, scale_factor=0.25): cur_xlim = ax.get_xlim() cur_ylim = ax.get_ylim() scale = zoom_slider.val*scale_factor x_left = 0 + scale x_right = 1 - scale y_top = 10 - scale*10 y_bottom = -10 + scale*10 ax.set_xlim([x_left, x_right]) ax.set_ylim([y_bottom, y_top]) fig.canvas.draw_idle() zoom_slider.on_changed(sliders_on_changed) reset_button_ax = fig.add_axes([0.8, 0.025, 0.1, 0.04]) reset_button = Button(reset_button_ax, 'Reset', color=axis_color, hovercolor='0.975') def reset_button_on_clicked(mouse_event): zoom_slider.reset() reset_button.on_clicked(reset_button_on_clicked) color_radios_ax = fig.add_axes([0.025, 0.5, 0.15, 0.15], facecolor=axis_color) color_radios = RadioButtons(color_radios_ax, ('red', 'blue', 'green'), active=0) def color_radios_on_clicked(label): line.set_color(label) fig.canvas.draw_idle() color_radios.on_clicked(color_radios_on_clicked) plt.show()
05-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值