table库

来源:互联网 发布:c语言编写图形 编辑:程序博客网 时间:2024/06/17 00:58

一、table.insert()

     1)   t={10,20,30}

          table.insert(t,1,15)     --(表名,位置,值)   ->  t={15,10,20,30}

     2)  table.insert(t,15)        --(表名,值)             ->   t={10,20,30,15}        默认插在表末



二、table.remove()

     1)   t={10,20,30}

          table.remove(t,2)     --(表名,位置)   ->  t={10,30}

     2)  table.remove(t)        --(表名)             ->   t={10,20}        默认删除表末



三、table.sort()

        原理就是LUA集成的冒泡算法,应用table.sort(表名)。

       --排序的算法

          function comps(a,b)

             return a.id < b.id

                    end


     1)  mytable={1,2,5,4}

            table.sort(mytable)     --mytable={1,2,4,5}

     2)    mytable={"aht", "my", "cool"}

         table.sort(mytable)     --mytable={"aht","cool","my"}            注意:数字和字符是不能混合排序的

    3)键值对Table排序(按Key排序,不是Value

[plain] view plaincopy
  1. local test_table = {a=3,b=2,c=4,d=1}  
  2. local key_table = {}  
  3.                                                     --取出所有的键  
  4. for key,_ in pairs(test_table) do  
  5.     table.insert(key_table,key)  
  6. end  
  7.                                                      --对所有键进行排序  
  8. table.sort(key_table)  
  9. for _,key in pairs(key_table) do  
  10.     print(key,test_table[key])  
  11. end  
输出结果:
[plain] view plaincopy
  1. >lua -e "io.stdout:setvbuf 'no'" "test.lua"  
  2. a   3  
  3. b   2  
  4. c   4  
  5. d   1

四、table.concat()

 

      mytable={"a","b","c","d"}


  1)  table.concat(mytable)   或者 table.concat(mytable,nil)   --abcd

  2)  table.concat(mytable,"%",2)       --b%c%d     :从第二个位置开始,以%来分隔连接

  3)  table.concat(mytable,"%",2,3)    --b%c   :从第二个位置开始,第三个位置结束,以%来分隔

  4)a={10,20,30,40}
       table.concat(a,"%",2,4)
       for k,v in pairs(a) do
            print(v)
        end           --仍然输出10,20,30,40,可见table.concat不会改变原始的table结构

0 0
原创粉丝点击