- 在线时间
- 13 小时
- 最后登录
- 2013-12-8
- 注册时间
- 2010-5-13
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 399 点
- 威望
- 11 点
- 阅读权限
- 30
- 积分
- 282
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 97
- 主题
- 45
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   91% TA的每日心情 | 难过 2012-8-27 18:22 |
|---|
签到天数: 1 天 [LV.1]初来乍到
 |
字典(dict)是一个可直接存取的双向链表,可以存放若干任意的Lu数据。字典元素由“键-值”对组成,键只能是字符串,但值可以是任何Lu数据类型。 T, D4 K5 D' q/ I, V( e
5 N4 P/ g$ a& h, M% E (1)新建字典 - !!!using("sys");+ H7 P( l5 q1 w, W7 @+ ?' v
- new[dict, "aa":1.2, "abc":"luuu"].o[]; //用函数new生成字典,有2组初始化数据。函数o用于输出字典。
用函数dict生成字典更为方便: - !!!using("sys");0 L2 R, V7 z! d( E2 d0 G
- dict["aa":1.2, "abc":"luuu"].o[]; //用函数dict生成字典,有2组初始化数据。函数o用于输出字典。
(2)得到字典元素 - !!!using("sys");
- ; h: G! @) _8 j1 ?! U' w8 ]8 z
- main(:a)= a=dict["aa":1.2, "abc":"luu"], o[a."aa", a."abc"];
(3)增加字典元素 - !!!using("sys");1 `0 U\\" g1 t3 P5 l
- main(:a)= a=dict["aa":1.2, "abc":"luu"], a."cc"=a."abc"+"88", o[a];
说明:当往字典中增加元素时,若已存在该键,则进行更新。" U% e& B; K) N! g; h- n9 ^
# n h! C4 ~. J3 I6 b
(4)删除字典9 |" ^/ b+ I+ B9 T% `5 ^, J' c
+ E" Y+ N3 t9 A9 b0 t, F
删除指定键-值对:a.dict_del["aa","abc"];
- ~1 v f! p* @) u3 y% ?0 l/ S' v2 V& D2 Q/ y
清空字典:a.dict_clear();* S9 E) J& D" _
* x5 o# J. i ^ N 删除字典对象,但暂存在缓冲区:del[a];. c7 K/ d# B5 E s! }
! \/ w/ s9 @: j. T7 E5 O 立即彻底删除字典对象:delete[a];
! P' R" F: K! ^/ Y
/ W4 b. M) `( n( A3 a! y (5)字典反序 - !!!using("sys");2 W' `, B$ v' ~. M* F
- main(:a)= a=dict["aa":1.2, "abc":"luu"], o[a], o[a.dict_reverse()];
结果:- dict{aa : 1.2 , abc : luu}dict{abc : luu , aa : 1.2}
复制代码 (6)字典存取效率测试:在字典a中添加若干元素,元素的键通过变换字符串str的值得到,sum用于求所有元素的值的和。 - !!!using("sys"); f& k7 U; x: Y z
- main(:a,i,j,str,t0,sum)= t0=clock(), a=dict[], str="aaaa", sum=0,
- . b& `% X5 I# R( v) m+ l
- i=0, while{++i<=100, str[1]=i,% f* N$ Q7 ]2 l6 F7 C
- j=1000, while{j<2000, str[2]=j, sum=sum+i+j, a.str=i+j, j++}
- ' y ?% e; C. |; {
- },\\" n) X9 {1 i2 x6 I( |
- o{"\r\n创建字典耗时", [clock()-t0]/1000., "秒。共", len(a), "个元素。sum=", sum},$ _4 f& _7 [0 U8 X; E\\" z* {\\" v
- t0=clock(), sum=0,: E5 n4 p2 x, ` B
- i=0, while{++i<=100, str[1]=i,
- 1 W- q) I7 Y& g Y1 p$ b
- j=1000, while{j<2000, str[2]=j, sum=sum+a.str, j++}
- ) G& F4 {3 x8 O5 T$ _
- },, Z7 C6 B- i% ^1 g' u) z
- o{"\r\n查询字典耗时", [clock()-t0]/1000., "秒。共", len(a), "个元素。sum=", sum, "\r\n"};
结果:- 创建字典耗时0.89000000000000001秒。共100000个元素。sum=155000000
; Y$ H\" O& t6 e i0 K - 查询字典耗时9.4e-002秒。共100000个元素。sum=155000000
复制代码 |
zan
|