Python论坛  - 讨论区

标题:[python-chinese] 真的是动态变量么?

2005年11月15日 星期二 20:40

超卓 chaoszhuo at gmail.com
Tue Nov 15 20:40:24 HKT 2005

大部分情况我觉得可以这样理解,但是我发现有时必须先赋值,程序才能正常进行。不然就会说
"未定义的参数"。我在使用链表(List)的时候遇到几次这种情况。不知有何玄机?
 Chaos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051115/f913f921/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月15日 星期二 20:59

limodou limodou at gmail.com
Tue Nov 15 20:59:02 HKT 2005

在 05-11-15,超卓<chaoszhuo at gmail.com> 写道:
> 大部分情况我觉得可以这样理解,但是我发现有时必须先赋值,程序才能正常进行。不然就会说
> "未定义的参数"。我在使用链表(List)的时候遇到几次这种情况。不知有何玄机?
>

python中是通过赋值来绑定变量的,没有赋值语句,一个对象是无法与一个变量名进行绑定的。虽然它不需要静态声明,但想要使用应该首先执行过赋值语句。

--
I like python!
My Blog: http://www.donews.net/limodou
NewEdit Maillist: http://groups.google.com/group/NewEdit

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月15日 星期二 21:49

超卓 chaoszhuo at gmail.com
Tue Nov 15 21:49:27 HKT 2005

所以我现在使用List是:
>>> a=[] # 绑定类型
>>> a.append(xxx) #使用
>>> a.pop() # 弹出第一个无用的值
 不知道这是不是推荐的用法?看上去很傻……


 在05-11-15,limodou <limodou at gmail.com> 写道:
>
> 在 05-11-15,超卓<chaoszhuo at gmail.com> 写道:
> > 大部分情况我觉得可以这样理解,但是我发现有时必须先赋值,程序才能正常进行。不然就会说
> > "未定义的参数"。我在使用链表(List)的时候遇到几次这种情况。不知有何玄机?
> >
>
> python中是通过赋值来绑定变量的,没有赋值语句,一个对象是无法与一个变量名进行绑定的。虽然它不需要静态声明,但想要使用应该首先执行过赋值语句。
>
> --
> I like python!
> My Blog: http://www.donews.net/limodou
> NewEdit Maillist: http://groups.google.com/group/NewEdit
>
> _______________________________________________
> Python中文技术讨论邮件列表
> 发言: 发邮件到 python-chinese at lists.python.cn
> 订阅: 发送 subscribe 到 python-chinese-request at lists.python.cn
> 退订: 发送 unsubscribe 到 python-chinese-request at lists.python.cn
> 详细说明: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051115/da72048b/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月15日 星期二 22:14

limodou limodou at gmail.com
Tue Nov 15 22:14:43 HKT 2005

在 05-11-15,超卓<chaoszhuo at gmail.com> 写道:
> 所以我现在使用List是:
> >>> a=[] # 绑定类型
> >>> a.append(xxx)  #使用
> >>> a.pop() # 弹出第一个无用的值
>
> 不知道这是不是推荐的用法?看上去很傻……
>

当然可以了。如果你在初始时已经知道有几个元素了,可以直接生成list,如:

a = [1,2,3]

--
I like python!
My Blog: http://www.donews.net/limodou
NewEdit Maillist: http://groups.google.com/group/NewEdit

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月15日 星期二 23:07

超卓 chaoszhuo at gmail.com
Tue Nov 15 23:07:35 HKT 2005

对于一个空的List,是不是只能用我上面说的赋值和使用办法?

在05-11-15,limodou <limodou at gmail.com> 写道:
>
> 在 05-11-15,超卓<chaoszhuo at gmail.com> 写道:
> > 所以我现在使用List是:
> > >>> a=[] # 绑定类型
> > >>> a.append(xxx) #使用
> > >>> a.pop() # 弹出第一个无用的值
> >
> > 不知道这是不是推荐的用法?看上去很傻……
> >
>
> 当然可以了。如果你在初始时已经知道有几个元素了,可以直接生成list,如:
>
> a = [1,2,3]
>
> --
> I like python!
> My Blog: http://www.donews.net/limodou
> NewEdit Maillist: http://groups.google.com/group/NewEdit
>
> _______________________________________________
> Python中文技术讨论邮件列表
> 发言: 发邮件到 python-chinese at lists.python.cn
> 订阅: 发送 subscribe 到 python-chinese-request at lists.python.cn
> 退订: 发送 unsubscribe 到 python-chinese-request at lists.python.cn
> 详细说明: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051115/d8a95031/attachment-0001.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月15日 星期二 23:09

超卓 chaoszhuo at gmail.com
Tue Nov 15 23:09:46 HKT 2005

另外,为什么Python会没有数组,虽然List更灵活,也可以模拟Array,但是效率还应是Array高些。没有数组,实在是不太习惯。

在05-11-15,超卓 <chaoszhuo at gmail.com> 写道:
>
> 对于一个空的List,是不是只能用我上面说的赋值和使用办法?
>
> 在05-11-15,limodou <limodou at gmail.com> 写道:
> >
> > 在 05-11-15,超卓<chaoszhuo at gmail.com> 写道:
> > > 所以我现在使用List是:
> > > >>> a=[] # 绑定类型
> > > >>> a.append(xxx) #使用
> > > >>> a.pop() # 弹出第一个无用的值
> > >
> > > 不知道这是不是推荐的用法?看上去很傻……
> > >
> >
> > 当然可以了。如果你在初始时已经知道有几个元素了,可以直接生成list,如:
> >
> > a = [1,2,3]
> >
> > --
> > I like python!
> > My Blog: http://www.donews.net/limodou
> > NewEdit Maillist: http://groups.google.com/group/NewEdit
> >
> > _______________________________________________
> > Python中文技术讨论邮件列表
> > 发言: 发邮件到 python-chinese at lists.python.cn
> > 订阅: 发送 subscribe 到 python-chinese-request at lists.python.cn
> > 退订: 发送 unsubscribe 到 python-chinese-request at lists.python.cn
> > 详细说明: http://python.cn/mailman/listinfo/python-chinese
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051115/c4bc3995/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月15日 星期二 23:17

Qiangning Hong hongqn at gmail.com
Tue Nov 15 23:17:37 HKT 2005

超卓 wrote:
> 对于一个空的List,是不是只能用我上面说的赋值和使用办法?

a = []

这样就可以了。没必要先append然后pop。

-- 
Qiangning Hong, Registered Linux User #396996
My Blog: http://www.hn.org/hongqn
RSS: http://feeds.feedburner.com/hongqn


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月15日 星期二 23:18

Qiangning Hong hongqn at gmail.com
Tue Nov 15 23:18:50 HKT 2005

超卓 wrote:
> 另外,为什么Python会没有数组,虽然List更灵活,也可以模拟Array,但是效率
> 还应是Array高些。没有数组,实在是不太习惯。

你先定义一下你说的数组,怎么个不习惯法?

-- 
Qiangning Hong, Registered Linux User #396996
My Blog: http://www.hn.org/hongqn
RSS: http://feeds.feedburner.com/hongqn


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月16日 星期三 02:40

one one at seecai.com
Wed Nov 16 02:40:32 HKT 2005

limodou,您好!

	开玩笑,有时是要通过赋值来绑定变量,就算动态基本的编程原理还是要讲的嘛。。

======= 2005-11-15 20:59:02 您在来信中写道:=======

>在 05-11-15,超卓<chaoszhuo at gmail.com> 写道:
>> 大部分情况我觉得可以这样理解,但是我发现有时必须先赋值,程序才能正常进行。不然就会说
>> "未定义的参数"。我在使用链表(List)的时候遇到几次这种情况。不知有何玄机?
>>
>
>python中是通过赋值来绑定变量的,没有赋值语句,一个对象是无法与一个变量名进行绑定的。虽然它不需要静态声明,但想要使用应该首先执行过赋值语句。
>
>--
>I like python!
>My Blog: http://www.donews.net/limodou
>NewEdit Maillist: http://groups.google.com/group/NewEdit
>_______________________________________________
>Python中文技术讨论邮件列表
>发言: 发邮件到 python-chinese at lists.python.cn
>订阅: 发送 subscribe 到 python-chinese-request at lists.python.cn
>退订: 发送 unsubscribe 到  python-chinese-request at lists.python.cn
>详细说明: http://python.cn/mailman/listinfo/python-chinese

= = = = = = = = = = = = = = = = = = = =
			

        致
礼!
 
				 
        one
        one at seecai.com
          2005-11-16


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月16日 星期三 09:05

Robert Chen search.pythoner at gmail.com
Wed Nov 16 09:05:37 HKT 2005

tuple内部的实现就是一个数组,完全可以用tuple啊。
如果兄台对所谓的效率有变态的要求,似乎不该选用Python。

 On 11/15/05, 超卓 <chaoszhuo at gmail.com> wrote:
>
> 另外,为什么Python会没有数组,虽然List更灵活,也可以模拟Array,但是效率还应是Array高些。没有数组,实在是不太习惯。
>
> 在05-11-15,超卓 <chaoszhuo at gmail.com> 写道:
> >
> > 对于一个空的List,是不是只能用我上面说的赋值和使用办法?
> >
> > 在05-11-15,limodou <limodou at gmail.com > 写道:
> > >
> > > 在 05-11-15,超卓<chaoszhuo at gmail.com> 写道:
> > > > 所以我现在使用List是:
> > > > >>> a=[] # 绑定类型
> > > > >>> a.append(xxx) #使用
> > > > >>> a.pop() # 弹出第一个无用的值
> > > >
> > > > 不知道这是不是推荐的用法?看上去很傻……
> > > >
> > >
> > > 当然可以了。如果你在初始时已经知道有几个元素了,可以直接生成list,如:
> > >
> > > a = [1,2,3]
> > >
> > > --
> > > I like python!
> > > My Blog: http://www.donews.net/limodou
> > > NewEdit Maillist: http://groups.google.com/group/NewEdit
> > >
> > > _______________________________________________
> > > Python中文技术讨论邮件列表
> > > 发言: 发邮件到 python-chinese at lists.python.cn
> > > 订阅: 发送 subscribe 到 python-chinese-request at lists.python.cn
> > > 退订: 发送 unsubscribe 到 python-chinese-request at lists.python.cn
> > > 详细说明: http://python.cn/mailman/listinfo/python-chinese
> > >
> > >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051116/f7c7377c/attachment-0001.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月16日 星期三 09:32

超卓 chaoszhuo at gmail.com
Wed Nov 16 09:32:49 HKT 2005

to: Qiangning Hong 兄

对于List 和 Array区别,我的理解是,要从底层实现和外部操作两个层面看。一个明显的外部操作的区别是,List可以任意抽取一个元素,同时改变长度;而典型的Array是不能这样做的。但是,对于效率来说还是要看底层实现。另外,从一般的编程语言来看,Array是个基本类型,List用的较少或是扩展的类型。至少我的经验是这样。所以对于Python没有将Array作为一个基本类,还是有点意外的。当然,如果不是纯数学计算,应该影响不明显。以上是个人理解,刚开始用Python,有不当之处请多拍砖。--
Perl里面的Array和Python里的List该不是一个东西吧:我真的会很吃惊的

On 11/15/05, Robert Chen <search.pythoner at gmail.com> wrote:
> tuple内部的实现就是一个数组,完全可以用tuple啊。
> 如果兄台对所谓的效率有变态的要求,似乎不该选用Python。
>
>  On 11/15/05, 超卓 <chaoszhuo at gmail.com> wrote:
> >
> > 另外,为什么Python会没有数组,虽然List更灵活,也可以模拟Array,但是效率还应是Array高些。没有数组,实在是不太习惯。
> >
> > 在05-11-15,超卓 <chaoszhuo at gmail.com> 写道:
> > >
> > > 对于一个空的List,是不是只能用我上面说的赋值和使用办法?
> > >
> > > 在05-11-15,limodou <limodou at gmail.com > 写道:
> > > >
> > > > 在 05-11-15,超卓<chaoszhuo at gmail.com> 写道:
> > > > > 所以我现在使用List是:
> > > > > >>> a=[] # 绑定类型
> > > > > >>> a.append(xxx) #使用
> > > > > >>> a.pop() # 弹出第一个无用的值
> > > > >
> > > > > 不知道这是不是推荐的用法?看上去很傻……
> > > > >
> > > >
> > > > 当然可以了。如果你在初始时已经知道有几个元素了,可以直接生成list,如:
> > > >
> > > > a = [1,2,3]
> > > >
> > > > --
> > > > I like python!
> > > > My Blog: http://www.donews.net/limodou
> > > > NewEdit Maillist: http://groups.google.com/group/NewEdit
> > > >
> > > > _______________________________________________
> > > > Python中文技术讨论邮件列表
> > > > 发言: 发邮件到 python-chinese at lists.python.cn
> > > > 订阅: 发送 subscribe 到 python-chinese-request at lists.python.cn
> > > > 退订: 发送 unsubscribe 到 python-chinese-request at lists.python.cn
> > > > 详细说明: http://python.cn/mailman/listinfo/python-chinese
> > > >
> > > >
> > >
> >
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月16日 星期三 10:11

Robert Chen search.pythoner at gmail.com
Wed Nov 16 10:11:32 HKT 2005

不管兄台吃不吃惊,Perl里的Array和Python中的List确实不是一个东西,这个星球上,只有Perl中的Array才和Perl中的Array是一个东西。
 List和Array的区别在底层实现吗?我说,错。谁说Array一定要比List的效率高?
抽象数据类型的核心观念就是以一层统一的接口来隔离底层实现,使高层应用不会与具体的底层实现耦合。不能Array的底层结构从连续内存空间变到离散内存空间之后,我在Array之上写的程序就不正常了。
底层?底层?什么是底层?这个概念太模糊。如果说数据结构和内存布局是底层,List和Array完全可以一样。C++中的内建数组和vector,按你的观念,一个是Array,一个是List,底层的内存结构完全一致,都是使用连续内存空间。至于效率,优秀的编译器完全可以将vector的元素访问操作做到和内建数组中的元素访问操作一样的高效。

诚如兄台所言,List和Array给你的最大区别在于它们所支持的操作,如果我们认同这一点,就可以说,Array和List这两个符号实际上只是两种对应于不同操作集合的抽象概念。它们的区别仅仅在于其所涵盖的操作的不同,而与底层实现毫无关系。C++中STL对于容器的规定只是规定了接口集合和复杂度,没有任何对实现的规定,对于map,有的实现用红黑树,有的实现用散列表。有什么关系呢,在STL看来,它们都是map,你说它们是一个东西吗?它们不是一个东西吗?

Python中有Array吗?有,tuple就是一个Array,你看看它的底层实现,看看它支持的操作集合,怎么看怎么象个Array。谁说一个语言中的Array一定要叫"Array"这个名字呢。Python中的list真的就是list了吗?它的底层实现跟C++中的vector完全一致,而与C++中的list则毫不相同,这两个list,到底谁才是正宗的list呢?

 On 11/16/05, 超卓 <chaoszhuo at gmail.com> wrote:
>
> to: Qiangning Hong 兄
>
> 对于List 和
> Array区别,我的理解是,要从底层实现和外部操作两个层面看。一个明显的外部操作的区别是,List可以任意抽取一个元素,同时改变长度;而典型的Array是不能这样做的。但是,对于效率来说还是要看底层实现。另外,从一般的编程语言来看,Array是个基本类型,List用的较少或是扩展的类型。至少我的经验是这样。所以对于Python没有将Array作为一个基本类,还是有点意外的。当然,如果不是纯数学计算,应该影响不明显。以上是个人理解,刚开始用Python,有不当之处请多拍砖。--
> Perl里面的Array和Python里的List该不是一个东西吧:我真的会很吃惊的
>
> On 11/15/05, Robert Chen <search.pythoner at gmail.com> wrote:
> > tuple内部的实现就是一个数组,完全可以用tuple啊。
> > 如果兄台对所谓的效率有变态的要求,似乎不该选用Python。
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051116/32d0efae/attachment-0001.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月16日 星期三 10:23

Geoffery>>>嘎瑞>>>XuLi geofferyli at gmail.com
Wed Nov 16 10:23:16 HKT 2005

读了陈兄的话,茅塞顿开啊!
哈哈

在05-11-16,Robert Chen <search.pythoner at gmail.com> 写道:
>
>
> 不管兄台吃不吃惊,Perl里的Array和Python中的List确实不是一个东西,这个星球上,只有Perl中的Array才和Perl中的Array是一个东西。
>  List和Array的区别在底层实现吗?我说,错。谁说Array一定要比List的效率高?
>
> 抽象数据类型的核心观念就是以一层统一的接口来隔离底层实现,使高层应用不会与具体的底层实现耦合。不能Array的底层结构从连续内存空间变到离散内存空间之后,我在Array之上写的程序就不正常了。
>
> 底层?底层?什么是底层?这个概念太模糊。如果说数据结构和内存布局是底层,List和Array完全可以一样。C++中的内建数组和vector,按你的观念,一个是Array,一个是List,底层的内存结构完全一致,都是使用连续内存空间。至于效率,优秀的编译器完全可以将vector的元素访问操作做到和内建数组中的元素访问操作一样的高效。
>  诚如兄台所言,List和Array给你的最大区别在于它们所支持的操作,如果我们认同这一点,就可以说,Array和List这两个符号实际上只是两种对应于不同操作集合的抽象概念。它们的区别仅仅在于其所涵盖的操作的不同,而与底层实现毫无关系。C++中STL对于容器的规定只是规定了接口集合和复杂度,没有任何对实现的规定,对于map,有的实现用红黑树,有的实现用散列表。有什么关系呢,在STL看来,它们都是map,你说它们是一个东西吗?它们不是一个东西吗?
>
>
> Python中有Array吗?有,tuple就是一个Array,你看看它的底层实现,看看它支持的操作集合,怎么看怎么象个Array。谁说一个语言中的Array一定要叫"Array"这个名字呢。Python中的list真的就是list了吗?它的底层实现跟C++中的vector完全一致,而与C++中的list则毫不相同,这两个list,到底谁才是正宗的list呢?
>
>  On 11/16/05, 超卓 <chaoszhuo at gmail.com> wrote:
> >
> > to: Qiangning Hong 兄
> >
> > 对于List 和
> > Array区别,我的理解是,要从底层实现和外部操作两个层面看。一个明显的外部操作的区别是,List可以任意抽取一个元素,同时改变长度;而典型的Array是不能这样做的。但是,对于效率来说还是要看底层实现。另外,从一般的编程语言来看,Array是个基本类型,List用的较少或是扩展的类型。至少我的经验是这样。所以对于Python没有将Array作为一个基本类,还是有点意外的。当然,如果不是纯数学计算,应该影响不明显。以上是个人理解,刚开始用Python,有不当之处请多拍砖。--
> >
> > Perl里面的Array和Python里的List该不是一个东西吧:我真的会很吃惊的
> >
> > On 11/15/05, Robert Chen <search.pythoner at gmail.com> wrote:
> > > tuple内部的实现就是一个数组,完全可以用tuple啊。
> > > 如果兄台对所谓的效率有变态的要求,似乎不该选用Python。
> > >
> >
>
>
> _______________________________________________
> Python中文技术讨论邮件列表
> 发言: 发邮件到 python-chinese at lists.python.cn
> 订阅: 发送 subscribe 到 python-chinese-request at lists.python.cn
> 退订: 发送 unsubscribe 到 python-chinese-request at lists.python.cn
> 详细说明: http://python.cn/mailman/listinfo/python-chinese
>
>


--
我就是我,是人间不一样的焰火.
我发现每个人都不是一下子就成功的
升级中..................................
http://groups-beta.google.com/group/moview 电影爱好者讨论组
http://groups-beta.google.com/group/wiki4u wiki爱好者讨论组

python-chinese list
Python中文技术讨论邮件列表
发言: 发邮件到 python-chinese at lists.python.cn
订阅: 发送 subscribe 到 python-chinese-request at lists.python.cn
退订: 发送 unsubscribe 到 python-chinese-request at lists.python.cn
详细说明: http://python.cn/mailman/listinfo/python-chinese
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051116/cf869d2d/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月16日 星期三 11:16

Qiangning Hong hongqn at gmail.com
Wed Nov 16 11:16:09 HKT 2005

超卓 wrote:
> to: Qiangning Hong 兄
> 
> 对于List 和 Array区别,我的理解是,要从底层实现和外部操作两个层面看。一个明显的外部操作的区别是,List可以任意抽取一个元素,同时改变长度;而典型的Array是不能这样做的。但是,对于效率来说还是要看底层实现。另外,从一般的编程语言来看,Array是个基本类型,List用的较少或是扩展的类型。至少我的经验是这样。所以对于Python没有将Array作为一个基本类,还是有点意外的。当然,如果不是纯数学计算,应该影响不明显。以上是个人理解,刚开始用Python,有不当之处请多拍砖。--
> Perl里面的Array和Python里的List该不是一个东西吧:我真的会很吃惊的

对我说话直接回我的贴就可以了,不用在回复别人的贴里加to这么麻烦。

从你认为的外部操作来看,你说的是“List可以……,而Array不能”,并没有指出什
么外部操作是Array支持而List不行的。因此,我说List是Array(注意这里的“是”
是从属关系,就像“CPython是Python”)有何不可?你完全可以把list当array用,
不明白你到底有什么地方不习惯呢?

而底层实现你什么也没说,只说了一句“但是,对于效率来说还是要看底层实现。”
但是数据结构本来就是抽象概念,同一个数据结构可以有很多种不同的实现方式。
List未必就比Array的效率低。你如果是在把python的List和C的array比效率,那
为什么不说“Python的int效率比C的int低,没有C的int,实在是不太习惯”呢?

Python的运行效率本来就不如C。但是仍然有高效率的数学运算包:Numeric和
numarray。这两个包实现了高效率的数据类型:矩阵。但不知道把一维矩阵当数组
用,你会不会也不习惯呢? ;)

-- 
Qiangning Hong, Registered Linux User #396996
My Blog: http://www.hn.org/hongqn
RSS: http://feeds.feedburner.com/hongqn


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月16日 星期三 12:00

amingsc amingsc at 163.com
Wed Nov 16 12:00:30 HKT 2005

补充两句
---------------------------------------------
需求决定一切
离开了需求谈效率没有任何意义

在 2005年11月16日 星期三 11:16,Qiangning Hong 写道:
> 超卓 wrote:
> > to: Qiangning Hong 兄
> >
> > 对于List 和
> > Array区别,我的理解是,要从底层实现和外部操作两个层面看。一个明显的外部操作的区别是,List可以任意抽取一个元素,同时改变长度;而典型的Ar
> >ray是不能这样做的。但是,对于效率来说还是要看底层实现。另外,从一般的编程语言来看,Array是个基本类型,List用的较少或是扩展的类型。至少我
> >的经验是这样。所以对于Python没有将Array作为一个基本类,还是有点意外的。当然,如果不是纯数学计算,应该影响不明显。以上是个人理解,刚开始用
> >Python,有不当之处请多拍砖。-- Perl里面的Array和Python里的List该不是一个东西吧:我真的会很吃惊的
>
> 对我说话直接回我的贴就可以了,不用在回复别人的贴里加to这么麻烦。
>
> 从你认为的外部操作来看,你说的是“List可以……,而Array不能”,并没有指出什
> 么外部操作是Array支持而List不行的。因此,我说List是Array(注意这里的“是”
> 是从属关系,就像“CPython是Python”)有何不可?你完全可以把list当array用,
> 不明白你到底有什么地方不习惯呢?
>
> 而底层实现你什么也没说,只说了一句“但是,对于效率来说还是要看底层实现。”
> 但是数据结构本来就是抽象概念,同一个数据结构可以有很多种不同的实现方式。
> List未必就比Array的效率低。你如果是在把python的List和C的array比效率,那
> 为什么不说“Python的int效率比C的int低,没有C的int,实在是不太习惯”呢?
>
> Python的运行效率本来就不如C。但是仍然有高效率的数学运算包:Numeric和
> numarray。这两个包实现了高效率的数据类型:矩阵。但不知道把一维矩阵当数组
> 用,你会不会也不习惯呢? ;)

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月16日 星期三 12:10

ygao ygao2004 at gmail.com
Wed Nov 16 12:10:10 HKT 2005

如果你要在python找出其他语言的东西,恐怕找不出,就算是找出了,也不能
说明什么问题。这样来学python,或者要求它,你是学不好的,无法去把握住它。
效率高不高,那是计算出来的,空谈有何用。

On 11/15/05, 超卓 <chaoszhuo at gmail.com> wrote:
> 另外,为什么Python会没有数组,虽然List更灵活,也可以模拟Array,但是效率还应是Array高些。没有数组,实在是不太习惯。
>
> 在05-11-15,超卓 <chaoszhuo at gmail.com> 写道:
> > 对于一个空的List,是不是只能用我上面说的赋值和使用办法?
> >
> >
> > 在05-11-15,limodou <limodou at gmail.com > 写道:
> > >
> > > 在 05-11-15,超卓<chaoszhuo at gmail.com> 写道:
> > > > 所以我现在使用List是:
> > > > >>> a=[] # 绑定类型
> > > > >>> a.append(xxx)  #使用
> > > > >>> a.pop() # 弹出第一个无用的值
> > > >
> > > > 不知道这是不是推荐的用法?看上去很傻……
> > > >
> > >
> > > 当然可以了。如果你在初始时已经知道有几个元素了,可以直接生成list,如:
> > >
> > > a = [1,2,3]
> > >
> > > --
> > > I like python!
> > > My Blog: http://www.donews.net/limodou
> > > NewEdit Maillist:
> http://groups.google.com/group/NewEdit
> > >
> > > _______________________________________________
> > > Python中文技术讨论邮件列表
> > > 发言: 发邮件到 python-chinese at lists.python.cn
> > > 订阅: 发送 subscribe 到
> python-chinese-request at lists.python.cn
> > > 退订: 发送 unsubscribe 到
> python-chinese-request at lists.python.cn
> > > 详细说明: http://python.cn/mailman/listinfo/python-chinese
> > >
> > >
> >
> >
>
>
> _______________________________________________
> Python中文技术讨论邮件列表
> 发言: 发邮件到 python-chinese at lists.python.cn
> 订阅: 发送 subscribe 到 python-chinese-request at lists.python.cn
> 退订: 发送 unsubscribe 到
> python-chinese-request at lists.python.cn
> 详细说明: http://python.cn/mailman/listinfo/python-chinese
>
>


--
■■■■■■■■■■■■■■■■■■■■■
Myblog: http://blog.donews.com/ygao/
自建的python学习论坛:
http://groups.google.com/group/python_study
■■■■■■■■■■■■■■■■■■■■■

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号