lnlidawei

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

python3: dlt - 数据结构2

 

 

 

 

一、源程序

  1 [wit@fedora null]$ cat  test.py 
  2 #!/usr/bin/env python3
  3 
  4 
  5 
  6 
  7 # file_name = test.py
  8 # python_verion = 3.11.1
  9 
 10 
 11 
 12 
 13 # test this script
 14 def msg():
 15     print("\nhello, python3!\n")
 16 
 17 
 18 # running msg()
 19 # msg()
 20 
 21 
 22 
 23 
 24 # define class for data
 25 class dlt_data:
 26     def __init__(self):
 27         self.no = 0
 28         self.id = []
 29         self.f = []
 30         self.b = []
 31 
 32     def set(self, uno, uid, ufront, uback):
 33         self.no = uno
 34         self.id = uid
 35         self.f.extend(ufront)
 36         self.b.extend(uback)
 37 
 38     def title(self):
 39         print(f"\n\tNo.\tid\t\tfront\t\t\t\t\t-\tback\t\n")
 40 
 41     def empty_line(sef):
 42         print(f"\n")
 43 
 44     def say(self):
 45         print(f"\t{self.no}\t{self.id}\t\t{self.f[0]}\t{self.f[1]}\t{self.f[2]}\t{self.f[3]}\t{self.f[4]}\t-\t{self.b[0]}\t{self.b[1]}")
 46 
 47 
 48 
 49 
 50 """
 51 dlt = dlt_data()
 52 dlt.set(1, 2023001, [18, 19, 24, 27, 34], [11, 12])
 53 dlt.title()
 54 dlt.say()
 55 """
 56 
 57 
 58 
 59 
 60 # display result for testing
 61 
 62 
 63 """
 64 dlt = []
 65 
 66 
 67 for i in [0,1,2,3,4]:
 68     dlt.append(dlt_data())
 69 i = 0
 70 
 71 
 72 c = 0
 73 for d in dlt:
 74     d.set(c, 2023001+c, [1,12,23,34,35], [1,4])
 75     c = c + 1
 76 c = 0
 77 
 78 
 79 dlt[0].title()
 80 for x in dlt:
 81     x.say()
 82 dlt[0].empty_line()
 83 """
 84 
 85 
 86 
 87 
 88 # define funtion
 89 def speak():
 90 
 91 
 92     # dlt[][]; dlt = [[list],[list], ...] 
 93     dlt = []
 94 
 95 
 96     for i in [0,1,2,3,4]:
 97         dlt.append(dlt_data())
 98     i = 0
 99 
100 
101     c = 0
102     for d in dlt:
103         d.set(c, 2023001+c, [1,12,23,34,35], [1,4])
104         c = c + 1
105     c = 0
106 
107 
108     dlt[0].title()
109     for x in dlt:
110         x.say()
111     dlt[0].empty_line()
112 
113 
114 
115 
116 # define funtion
117 def speak2():
118 
119 
120     # dlt[][]; dlt = [[list],[list], ...] 
121     dlt = []
122 
123     scope = 30
124     for i in range(scope):
125         x = dlt_data()
126         x.set(i, 2022001+i, [2, 4, 7, 14, 31], [3, 9])
127         dlt.append(x)
128     i = 0
129 
130 
131     
132     dlt[0].title()
133     for x in dlt:
134         x.say()
135     x = []
136     dlt[0].empty_line()
137     
138 
139 
140 
141 # define function
142 def speak3():
143 
144 
145     # dlt[][]; dlt = [[list],[list], ...] 
146     dlt = []
147 
148     scope = 5
149     for i in range(scope):
150         x = dlt_data()
151         uf = [ m+i for m in [1,7,8,12,31]]
152         ub = [ n+i for n in [1,8]]
153         x.set(i, 2022001+i, uf, ub)
154         dlt.append(x)
155     i = 0
156 
157 
158     """
159     dlt[0].title()
160     for x in dlt:
161         x.say()
162     x = []
163     dlt[0].empty_line()
164     """
165 
166 
167     # dlt[][]; dlt = [[list],[list], ...] 
168     return dlt
169 
170 
171 
172 
173 # define  output
174 # list_dlt[][]; list_dlt = [[list],[list], ...] 
175 def output(list_dlt):
176     print(f"\n-- output: start --")
177     for l in list_dlt:
178         print(f"{l.no}\t{l.id}\t{l.f[0]}\t{l.f[1]}\t{l.f[2]}\t{l.f[3]}\t{l.f[4]}\t-\t{l.b[0]}\t{l.b[1]}")
179     print(f"-- output: end --\n")
180 
181 
182 
183 
184 # define output2
185 # list_dlt[][]; list_dlt = [[list],[list], ...] 
186 def output2(pl):
187 
188 
189     s1 = " "
190     s2 = "  "
191     
192     print(f"\n-- output: start --")
193     for x in pl:
194 
195         f1 = x.f[0] - 1
196         f2 = x.f[1] - x.f[0]
197         f3 = x.f[2] - x.f[1]
198         f4 = x.f[3] - x.f[2]
199         f5 = x.f[4] - x.f[3]
200         f6 = 35 - x.f[4]
201 
202         sp = "    -    "
203 
204         b1 = x.b[0] - 1
205         b2 = x.b[1] - x.b[0]
206         b3 = 12 - x.b[1]
207 
208 
209         if x.f[0] < 10 :
210             sf1 = s2*f1 + s1
211         else:
212             sf1 = s2*f1
213 
214         if x.f[1] < 10 :
215             sf2 = s2*f2 + s1
216         else:
217             sf2 = s2*f2
218 
219         if x.f[2] < 10 :
220             sf3 = s2*f3 + s1
221         else:
222             sf3 = s2*f3
223 
224         if x.f[3] < 10 :
225             sf4 = s2*f4 + s1
226         else:
227             sf4 = s2*f4
228 
229         if x.f[4] < 10 :
230             sf5 = s2*f5 + s1
231         else:
232             sf5 = s2*f5
233 
234         sf6 = s2*f6
235 
236         if x.b[0] < 10 :
237             sb1 = s2*b1 + s1
238         else:
239             sb1 = s2*b1
240 
241         if x.b[1] < 10 :
242             sb2 = s2*b2 + s1
243         else:
244             sb2 = s2*b2
245 
246         sb3 = s2*b3
247 
248 
249         #print(f"\t{x.no}\t{x.id}\t{sf1}{x.f[0]}{sf2}{x.f[1]}{sf3}{x.f[2]}{sf4}{x.f[3]}{sf5}{x.f[4]}{sf6}{sp}{sb1}{x.b[0]}{sb2}{x.b[1]}{sb3}")
250         print(f"\t{x.no}\t{x.id}\t{sf1}{x.f[0]}{sf2}{x.f[1]}{sf3}{x.f[2]}{sf4}{x.f[3]}{sf5}{x.f[4]}{sf6}{sp}{sb1}{x.b[0]}{sb2}{x.b[1]}{sb3}")
251 
252 
253     print(f"-- output: end --\n")
254 
255 
256     """
257     print(f"\n-- output: start --")
258     for l in pl:
259         print(f"\t{l.no}\t{l.id}\t{s*f1}{l.f[0]}{s*f2}{l.f[1]}{s*f3}{l.f[2]}{s*f4}{l.f[3]}{s*f5}{l.f[4]}{s*f6}{sp}{s*b1}{l.b[0]}{s*b2}{l.b[1]}{s*b3}")
260     print(f"-- output: end --\n")
261     """
262 
263 
264 
265 
266 
267 
268 
269 
270 # test part
271 if  __name__ == "__main__":
272     #speak()
273     #speak2()
274     dlt_list = speak3()
275     output2(dlt_list)
276 [wit@fedora null]$ 
277 [wit@fedora null]$ 

 

 

 

 

二、运行结果

 1 [wit@fedora null]$ ./test.py 
 2 
 3 -- output: start --
 4         0       2022001  1             7   8        12                                      31            -     1               8        
 5         1       2022002    2             8   9        13                                      32          -       2               9      
 6         2       2022003      3             9  10        14                                      33        -         3              10    
 7         3       2022004        4            10  11        15                                      34      -           4              11  
 8         4       2022005          5            11  12        16                                      35    -             5              12
 9 -- output: end --
10 
11 [wit@fedora null]$ 
12 [wit@fedora null]$ 

 

 

 

 

三、参考资料

 

  1、python3: dlt - 数据结构   https://www.cnblogs.com/lnlidawei/p/17825107.html

 

posted on 2023-11-11 08:22  lnlidawei  阅读(17)  评论(0编辑  收藏  举报